从Python中读取txt文件中的列表

时间:2016-07-22 07:42:48

标签: python list file

我需要从txt文件中读取列表并将其作为列表变量导入到我的.py文件中。 我可以使用import函数,但程序必须编译,当它编译为exe时,所有导入都会转换为不可修改的文件,因此解决方案是从txt读取。 我使用的代码与此类似

首先,我把我的列表放在这样的txt文件中:

[['preset1','a1','b1'],['preset2','a2','b2'],['preset3','a3','b3'],['preset4','a4','b4']]

然后,我在python中读取列表:

file = open('presets.txt','r')
content = file.readline()
newpresets = content.split("'")
file.close()

我认为用split功能删除'符号,程序将内容作为列表而不是字符串,但这不起作用... 所以,我需要如何读取文件的内容而不是作为字符串解释。

有人可以帮助我吗?

由于

1 个答案:

答案 0 :(得分:2)

尝试使用ast.literal_eval

>>> a = str([['preset1','a1','b1'],['preset2','a2','b2'],['preset3','a3','b3'],['preset4','a4','b4']])
>>> a
"[['preset1', 'a1', 'b1'], ['preset2', 'a2', 'b2'], ['preset3', 'a3', 'b3'], ['preset4', 'a4', 'b4']]"
>>> import ast
>>> ast.literal_eval(a)
[['preset1', 'a1', 'b1'], ['preset2', 'a2', 'b2'], ['preset3', 'a3', 'b3'], ['preset4', 'a4', 'b4']]
>>>