子进程:调用具有两个输入重定向的程序
Subprocess: calling a program with two input redirects
我正在尝试 运行 以下命令,其中 AAA
和 BBB
是 Python 包含一堆多行数据的变量。
我不想通过将变量写入磁盘来减慢自己的速度。似乎 subprocess.Popen
应该以某种方式支持它。
diff <(echo AAA) <(echo BBB)
我知道它在 shell 级别上的工作方式有一个微妙之处,我没有掌握,这可能会让这变得很简单。
如何使用包含 Python 变量的两个输入重定向在 Python 中调用一个 shell 可执行文件?
这是否达到了您想要的效果?
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()
我正在尝试 运行 以下命令,其中 AAA
和 BBB
是 Python 包含一堆多行数据的变量。
我不想通过将变量写入磁盘来减慢自己的速度。似乎 subprocess.Popen
应该以某种方式支持它。
diff <(echo AAA) <(echo BBB)
我知道它在 shell 级别上的工作方式有一个微妙之处,我没有掌握,这可能会让这变得很简单。
如何使用包含 Python 变量的两个输入重定向在 Python 中调用一个 shell 可执行文件?
这是否达到了您想要的效果?
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()