Python 子进程:使用两个输入重定向调用程序
我试图运行以下命令,其中Python 子进程:使用两个输入重定向调用程序,python,bash,subprocess,io-redirection,Python,Bash,Subprocess,Io Redirection,我试图运行以下命令,其中AAA和BBB是包含一组多行数据的Python变量 我不希望通过将变量写入磁盘来降低速度。似乎subprocess.Popen应该以某种方式支持这一点 diff <(echo AAA) <(echo BBB) diff这是否达到了您想要的效果 import os import subprocess os.environ['aaa'] = """This is python multiline data containing A
AAA
和BBB
是包含一组多行数据的Python变量
我不希望通过将变量写入磁盘来降低速度。似乎subprocess.Popen
应该以某种方式支持这一点
diff <(echo AAA) <(echo BBB)
diff这是否达到了您想要的效果
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()
导入操作系统
导入子流程
os.environ['aaa']=''这是包含
AAA“
os.environ['bbb']=''这是包含
BBB“
process=subprocess.Popen(['/bin/bash','-c',diff这是否达到了您想要的效果
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()
导入操作系统
导入子流程
os.environ['aaa']=''这是包含
AAA“
os.environ['bbb']=''这是包含
BBB“
process=subprocess.Popen(['/bin/bash','-c',diffPopen()
的返回值具有stdin
属性(假设在创建对象时传递了stdin=PIPE
)。调用.write()
在这个问题上两次,将您的AAA
和BBB
值传递给它。您是想从Python调用diff
?还是想将两个Python脚本的输出输入shell中的diff
?我不太明白您想做什么。我想您可以使用FIFO在Python中做同样的事情。如果要使用Python获取差异,是否尝试使用?Popen()
的返回值具有stdin
属性(假设在创建对象时传递了stdin=PIPE
)
在这个问题上两次,将您的AAA
和BBB
值传递给它。您是想从Python调用diff
?还是想将两个Python脚本的输出输入shell中的diff
?我不太明白您想做什么。我想您可以使用FIFO在Python中做同样的事情。如果您想使用Python获得一个diff,您是否尝试过使用?我最终使用了difflib,我认为这也会起作用。我最终使用了difflib,我认为这也会起作用。