假设我想将输入传递给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 when reading a line
错误。
我还尝试添加sys.stdin.close()
一行,提示输入ValueError: I/O operation on closed file
。
你可以通过管道将信息发送到用户stdin
,然后再从用户那里获得输入吗?
注意:这是一个简化的简化示例-请不要回答“为什么要在第一种情况下这样做”,这确实令人沮丧。我只是想知道你是否可以通过管道将信息发送给stdin
用户,然后稍后提示用户进行输入。
谢谢agf。阅读它后是否需要关闭dev / tty?
不,我不这么认为,但是我不确定。使其保持打开状态会对您造成什么伤害?
我不知道...我只是在考虑尝试防御性编程,并在打开它们后关闭它们。
诅咒的建议行不通。它仍然会尝试从stdin读取。