从python中的stdin读取时管道文件描述错误

时间:2009-06-29 10:36:37

标签: python windows pipe

this问题重复。投票结束。

在Windows命令行中考虑这一点。

scriptA.py | scriptB.py

在scriptA.py中:

sys.stdout.write( "hello" )

在scriptB.py中:

print sys.stdin.read()

这会产生以下错误:

c:\> scriptA.py | scriptB.py
close failed: [Errno 22] Invalid argument
Traceback (most recent call last):
  File "c:\scriptB.py", line 20, in <module>
    print sys.stdin.read()
IOError: [Errno 9] Bad file descriptor

“关闭失败”消息似乎来自scriptA.py的执行。

如果我使用sys.stdin.read(),sys.stdin.read(1),sys.stdin.readlines()等等没关系。

怎么了?

this问题重复。投票结束。

1 个答案:

答案 0 :(得分:7)

从文件关联开始,似乎stdin / stdout重定向不起作用。 这不是特定于python,而是由win32 cmd.exe引起的问题。

请参阅:http://mail.python.org/pipermail/python-bugs-list/2004-August/024920.html