我正在写一个python脚本,它从stdin读取一个流,并将此流传递给subprocess
以供进一步处理。问题在于python在处理输入流之后挂起。阅读流并传递给子进程
例如,此玩具程序sorter.py
应该从stdin读和流传递给subprocess
用于经由Unix的sort
排序:
cat dat.txt | ./sorter.py
这里的sorter.py:
#!/usr/bin/env python
import subprocess
import sys
p= subprocess.Popen('sort -', stdin= subprocess.PIPE, shell= True)
for line in sys.stdin:
p.stdin.write(line)
sys.exit()
流从cat
正确排序,但程序挂起,即sys.exit()永远不会到达。
我已经阅读了很多关于这个主题的变化,但是我不明白。任何想法缺少什么?
谢谢!
达里奥
相关:[将数据流式传输到带有子进程的命令.Popen](http://stackoverflow.com/q/32662375/4279) – jfs