使用 Python 2.6 并收到一个恼人的错误,我仍然不确定为什么。我感兴趣的文件包含多行只有一个值。我想检索这些值。这段代码
f = open(file, 'r')
for line in file:
value = eval(line)
导致以下错误消息:
File "<string>", line 1, in <module>
NameError: name 'c' is not defined
所以我在这里研究了 Stack Overflow..这个问题和另一个问题.. 但我无法在他们的问题和我的问题之间建立联系。我从他们那里得到的是,我对 Python 的使用eval()
可能会让 Python 感到困惑,我应该用raw_input
它来让 Python 知道它不必评估line
,而是实际变量line
代表。但是,将我的代码修复为:
for line in file:
value = eval(raw_input(line))
这引发了以下错误(并且可能使终端超载..它只是冻结了,直到我退出程序):
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing
我在这里做错了什么?我发现eval()
它不是最喜欢在 SO 周围使用的事实,我是否误解了它的功能?
编辑:我的文件是一个值列表,所以,
2
3
2
3
1
0
ETC
编辑所以这是一个误解。感谢 DSM 指出我的文件名不匹配,感谢 Levon 仍然提供帮助并显示int
为eval
.