我正在创建一个在txt文件中存储选项的程序,我尝试了几个不同的行,但到目前为止我认为eval
是最好的。
我在文件中收到了这些信息:
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
如何工作的了解似乎是错误的,我不知道为什么,以前曾多次使用过,只是从文件中删除过。
答案 0 :(得分:5)
正如文档所说,'eval'评估表达式。不是声明。作业是陈述。
您可以使用exec
语句。但是如果你想执行文件的所有行,那正是execfile
所做的。 (我在这里假设Python 2.x; 3.x中的情况有点不同,但这个想法很相似。)
然而,这首先是一个坏主意。从txt文件加载和存储多个选项值的更好方法是使用除Python源之外的任何其他格式。 JSON,.ini文件,.rc文件等Python内置了代码来处理各种这样的格式。请参阅File Formats和Internet Data Handling以获取相关模块的列表,仔细阅读并选择您想要的模块。