0

我正在创建一个将选项存储在 txt 文件中的程序,我尝试了几行不同的行,但到目前为止,我认为 aneval是最好的。

我在文件中得到了这个信息:

colordefondo = "#abcdef"

eval在程序中得到了这个:

for line in open("filename.txt", "r"):
  eval(line)

但是,当我尝试代码时,它给了我这个错误:

Traceback (most recent call last):
File "D:\project-sae\Sae.py", line 25, in <module>
eval(line)
File "<string>", line 1
colordefondo = "#abcdef"
             ^
SyntaxError: invalid syntax

我的问题是为什么?如果有人知道从 txt 文件中加载和存储几个选项的值的更好方法,那就太好了。尽管如此,我的问题是关于为什么它eval会失败,我对如何eval工作的了解似乎是错误的,我不知道为什么,之前使用过几次,只是从来没有从文件中。

4

1 回答 1

5

正如文档所说,'eval'评估一个表达式。不是声明。作业是陈述。

您可以使用该exec语句。但是,如果您想执行文件的所有行,那正是这样execfile做的。(我在这里假设 Python 2.x;3.x 中的情况有些不同,但想法是相似的。)

但是,首先这样做是个坏主意。从 txt 文件加载和存储多个选项的值的更好方法是使用Python 源以外的任何内容作为格式。JSON、.ini 文件、.rc 文件等。Python 带有内置代码来处理各种此类格式。有关相关模块的列表,请参阅文件格式Internet 数据处理,通读它们,然后选择您想要的。

于 2013-11-08T22:03:16.303 回答