python - 子进程:调用具有两个输入重定向的程序
问题描述
我正在尝试运行以下命令,其中包含一堆多行数据的 Python 变量AAA
。BBB
我宁愿不要通过将变量写入磁盘来减慢自己的速度。似乎subprocess.Popen
应该以某种方式支持这一点。
diff <(echo AAA) <(echo BBB)
我知道这在 shell 级别上的工作方式有一个微妙之处,我没有掌握这可能会使这变得轻而易举。
如何使用子进程在 Python 中调用一个 shell 可执行文件,并使用两个包含 Python 变量的输入重定向?
解决方案
这是否达到你想要的?
import os
import subprocess
os.environ['aaa'] = """This is python multiline data containing
AAA"""
os.environ['bbb'] = """This is python multiline data containing
BBB"""
process = subprocess.Popen(['/bin/bash', '-c', 'diff <(echo "$aaa") <(echo "$bbb")'])
process.communicate()
推荐阅读
- javascript - 从渲染进程调用的工作人员的 postmessage 到哪里去了?
- react-native - 如何在 React Native 中将 Menu Popup 与 TouchableOpacity 结合起来?
- android - 无法添加窗口 -- 令牌 null 甚至使用 TYPE_SYSTEM_ALERT
- python-3.x - 如何在 aws Lambda 和 python 中打印新行
- django - 写在两个不同的postgres模型上?
- php - 使用 Python 脚本安装 wordpress 插件/主题
- tensorflow - 如何识别放大的图像?
- chisel - 如何将 val 名称保留在 withClock() 或 withClockAndReset() 范围内
- ruby - 从 mruby 调用 C 函数
- c# - 瀑布结束问题。它提示回到其他对话框而不是结束