我试图在命令提示符下从用户处获得输入。该程序以“cat text.txt | ./thescript.py”的形式从文本文件中读取数据。raw_input()中的Python EOF错误
在所涉脚本的位置,所有数据已被读入,处理并放入列入清单。
现在我通过列表寻找可疑项目的列表。代码基本如下所示:
for invoice in parsedlist:
if invoice[-1] == 3:
sys.stderr.write("triple duplicate at " + invoice[2]+' : ' + invoice[3]+"\n")
sys.stderr.write("continue Y or N \n")
answer = raw_input("Type your answer here")
if answer == 'N':
sys.exit(1)
else:
pass`
此代码导致EOFError。从我已经理解,stdin是在这种情况下从猫读取,因为它已经达到EOF,这就是为什么raw_input获取EOF在这里? (我认为)目标是让脚本打印标准错误警告,并让我选择是否忽略警告并继续或完全退出。最后,所有输出都会显示出来,并且不会包含任何错误警告或响应。我看过使用try/exception的例子,但在这种情况下我还没有弄清楚它的意义。 (例如,为什么raw_input不会等待输入?)
我想我可能只是以错误的方式攻击这个问题,从而产生一个问题,可能会更好地走过去,然后跳过。任何帮助一如既往地受到赞赏。
对不起,缩进。他们是在原来的。 – Wyatt
'cat text.txt | 。/ thescript.py'通常拼写为'./thescript.py
除非他简化了左侧,所以它不会分散我们的手头问题......; –