python错误sys.stdin管道
我在google中查找了很多示例,但都不起作用,我打印到一个通过ms dos出口管道的文件,但这给我带来了一个错误,好像我的文件无法读取sys.stdin,我输入了代码:python错误sys.stdin管道,python,subprocess,pipe,sys,Python,Subprocess,Pipe,Sys,我在google中查找了很多示例,但都不起作用,我打印到一个通过ms dos出口管道的文件,但这给我带来了一个错误,好像我的文件无法读取sys.stdin,我输入了代码: import sys line = sys.stdin for l in line.read(): print l dos女士,我写了以下内容: ping 127.0.0.1 | pipetest.py 上面的控制台显示我在“for”行中有错误,并显示: IOError:[Errno 9]错误的文件描述符 我使用py
import sys
line = sys.stdin
for l in line.read():
print l
dos女士,我写了以下内容:
ping 127.0.0.1 | pipetest.py
上面的控制台显示我在“for”行中有错误,并显示:
IOError:[Errno 9]错误的文件描述符
我使用python2.7和windows。这可以:
import sys
lines = sys.stdin
for l in lines:
print l
但是,由于Python对文件的迭代方式,您可能会遇到缓冲问题。如果要立即阅读每一行,则应使用readline():
而不是
ping 127.0.0.1 | pipetest.py
试一试
也考虑另一个建议,您可能不需要。Read())/P> < P>代码正确:<代码> ping 127.0.0.1πPython PiestTest.Py
感谢Andris它没有修复
“错误的文件描述符”
错误。顺便说一句,你可以在iter(sys.stdin.readline,'')中使用:打印行,而不是而循环。编辑,谢谢。在Windows7上,我没有得到“坏文件描述符”,不知道该怎么做。表示它可能会修复EOFError
,但OP具有不同的IOError(EBADF)
错误。@J.F.Sebastian Windows 7+Python 2.7.3为我提供了与OP完全相同的IOError:[Errno 9]错误文件描述符。您链接的问题实际上导致了一个EOFError
。是的,我错了。(该链接来自)因此它可能也为这种情况提供了解决方案)。您可以不重复它
ping 127.0.0.1 | pipetest.py
ping 127.0.0.1 | python pipetest.py