我目前正在编写一段代码,它接受一个文件,其中一行是列表,另一行是字典(见下文)。是否有一种方法可以将列表或字典以字符串形式保存到文件中,并重新创建该列表/字典?我试过其他帖子,但我不认为我在寻找正确的东西,因为到目前为止,没有一个线程似乎能解决我的问题。
文件的内容如下:
(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)
谢谢!
要安全地计算包含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())