Неправильный файловый дескриптор канала при чтении со стандартного ввода в Python - PullRequest
2 голосов
/ 29 июня 2009

Дубликат этого вопроса. Проголосуйте, чтобы закрыть.

Учитывайте это в командной строке 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 () и т. Д. И т. Д.

Что не так?

Дубликат этого вопроса. Проголосуйте, чтобы закрыть.

1 Ответ

7 голосов
/ 29 июня 2009

Кажется, что перенаправление stdin / stdout не работает при запуске из ассоциации файлов. Это не относится к python, но проблема вызвана win32 cmd.exe.

См .: http://mail.python.org/pipermail/python-bugs-list/2004-August/024920.html

...