Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 子进程:使用两个输入重定向调用程序_Python_Bash_Subprocess_Io Redirection - Fatal编程技术网

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',diff
Popen()
的返回值具有
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,我认为这也会起作用。