Передать ввод по конвейеру программе Python, а затем получить ввод от пользователя

Допустим, я хочу передать ввод по конвейеру программе Python, а затем получить ввод от пользователя в командной строке.

echo http://example.com/image.jpg | python solve_captcha.py

и содержимое Solve_captcha.py :

import sys 
image_url = sys.stdin.readline()

# Download and open the captcha...

captcha = raw_input("Solve this captcha:")
# do some processing...

Вышеупомянутое вызовет ошибку EOFError: EOF при чтении строки .

Я также попытался добавить sys.stdin.close () , в которой возникла ошибка ValueError: операция ввода-вывода для закрытого файла .

Можете ли вы передать информацию по конвейеру на stdin , а затем получить ввод от пользователя?

Примечание: Это урезанный, упрощенный пример - пожалуйста, не отвечайте, говоря "почему вы хотите сделать это в первом случае, "это действительно неприятно. Я просто хочу знать, можете ли вы передать информацию по конвейеру на stdin , а затем попросить пользователя ввести данные.

14
задан Kevin Burke 22 August 2011 в 17:05
поделиться