EOF错误python

时间:2016-06-06 05:30:17

标签: python python-2.7 eof

我在Python中编写一个简单的代码并收到此错误: Traceback(最近一次调用最后一次):   文件“prog.py”,第4行,in EOFError:读取行时的EOF

我的代码是:

inp = [""]
i=0
while i==0:
    answer = raw_input("")
    if answer!="":
        inp.append(answer)
    else:
        break

for item in inp:
    if item=="42":
        break
    else:
        print item

print ""

1 个答案:

答案 0 :(得分:1)

您可能会尝试阅读并理解这个答案(以帮助您了解Python知识):

#! /usr/bin/env python
"""Short description what this module does."""
from __future__ import print_function


inp = []
while True:
    try:
        answer = raw_input("")  # in python v3 use input instead
    except EOFError as e:
        print("Ignored:", e)
        answer = None
    if answer:
        inp.append(answer)
    else:
        break

for item in inp:
    if item == "42":
        break
    else:
        print(item)

print()

这只是尝试更易读的编码风格的第一步。

接下来肯定会在python.org上尝试原始的Python教程......

以上脚本的调用存储在prog.py

$> python2 prog.py < /dev/null

使得从/dev/null读取的程序作为输入不再导致此:

Traceback (most recent call last):
  File "prog.py", line 5, in <module>
    answer = raw_input("")
EOFError: EOF when reading a line

但是:

Ignored: EOF when reading a line
[]

如果您只想打印出Ignored ...行,并且知道可以默默忽略,那么您可以将除行/块之外的内容重写为

except EOFError:
    answer = None