【发布时间】:2015-12-27 04:36:23
【问题描述】:
我正在编写一个 python 脚本,它从标准输入读取一个流并将这个流传递给subprocess 以进行进一步处理。问题是python在处理完输入流后挂起。
例如,这个玩具程序sorter.py 应该从标准输入读取并将流传递给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()。
我已经阅读了很多关于这个主题的变体,但我无法正确理解。知道缺少什么吗?
谢谢!
达里奥
【问题讨论】:
标签: python subprocess stdin