我有一个bash脚本(使用mkfifo创建了fifo1和fifo2):
processor <fifo1 >fifo2 &
source >fifo1 &
sink <fifo2 &
实现图表:
source -> processor -> sink
我如何在python脚本中执行此操作?
答案 0 :(得分:-1)
要使用系统流程,您可以使用Subprocess和Popen。
然后,要在进程之间共享数据,您可以使用PIPE。
还提供了示例代码here
这是一个简单的实现:
p1.py
import subprocess
proc = subprocess.Popen(['python', 'temp2.py'], stdin=subprocess.PIPE ,stdout=subprocess.PIPE)
stdout_value, stderr_value = proc.communicate()
print('\nStdout value' + repr(stdout_value) + '\n')
print('\nStderr value' + repr(stderr_value) + '\n')
此代码将调用 temp2.py 程序 temp2.py
import subprocess
proc = subprocess.Popen(['ls'], stdin=subprocess.PIPE ,stdout=subprocess.PIPE
, stderr=subprocess.PIPE)
stdin_value, stdout_value = proc.communicate()
print('\nStdin value' + repr(stdin_value) + '\n')
print('\nStdout value' + repr(stdout_value) + '\n')
temp2.py 将在当前目录中执行ls
命令,然后保存结果。
要获得有关如何使用管道中存储值的更多详细信息,请检查this使用系统输入输出有很多变化,这取决于您的实现,因此请查看上述文档以获取进一步的帮助。