我目前正在编写一段代码,其中包含一行列表的文件和另一行的词典(见下文)。有没有办法获取以字符串形式保存到文件中的列表或字典,并重新创建该列表/字典?我已尝试过其他帖子,但我不认为我正在寻找正确的帖子,因为到目前为止,没有任何一个线程可以解决我的问题。
这是文件内容的样子:
[1,2,3,4,5,6,7,8]
{' a':1,' b':2,' c':3}
这与我认为可行的方式一致(显然这只是一个近似值)
location = input("Please input your file location")
f.open(location, 'r')
list = location(line1)
dict = location(line2)
谢谢!
答案 0 :(得分:2)
要安全地评估包含Python文字的字符串,您可以使用ast.literal_eval()
:
>>> from ast import literal_eval
>>> literal_eval("[1,2,3,4,5,6,7,8]")
[1, 2, 3, 4, 5, 6, 7, 8]
>>> literal_eval("{'a': 1,'b': 2,'c': 3}")
{'a': 1, 'b': 2, 'c': 3}
要读取并解析文件的前两行,请执行以下操作:
from ast import literal_eval
with open(location) as f:
L = literal_eval(f.readline())
D = literal_eval(f.readline())