我正在寻找谷歌很多的例子,但没有工作,我打印到通过出口管道ms-dos的文件,但这会抛出一个错误,好像我的文件无法读取sys.stdin,我把代码:
import sys
line = sys.stdin
for l in line.read():
print l
和ms-dos我写了以下内容:
ping 127.0.0.1 | pipetest.py
上面的控制台告诉我,我在“for”的行中有错误并显示:
IOError:[Errno 9]错误的文件描述符
我使用python2.7和windows。
答案 0 :(得分:1)
这有效:
import sys
lines = sys.stdin
for l in lines:
print l
但是,由于Python如何迭代文件,您可能会遇到缓冲问题。如果你想立即读取每一行,你应该使用readline()代替:
import sys
lines = sys.stdin
for l in iter(lines.readline, ''):
print l
答案 1 :(得分:1)
而不是
ping 127.0.0.1 | pipetest.py
试
ping 127.0.0.1 | python pipetest.py
另外考虑其他建议,你可能不需要.read()
答案 2 :(得分:0)
代码更正:ping 127.0.0.1 | python pipetest.py
感谢Andris