如果你有在[1, 2, 3, 4]
形式的东西,在这种情况下,你可以使用ast
:
In [1]: import ast
In [2]: with open('lists.txt', 'rb') as f:
...: lists = f.readlines()
...:
...:
In [3]: list_container = [ast.literal_eval(line.strip()) for line in lists]
In [4]: list_container
Out[4]: [[1, 2, 3], [[1, 2, 3], [4, 5, 6]]]
在这种情况下,lists.txt
是这样的:
[1, 2, 3]
[[1, 2, 3], [4, 5, 6]]
但是,如果你的文件看起来与上述状态完全相同,您可以使用exec
,但应始终谨慎使用exec
和eval
之类的内容:
In [2]: with open('test.txt', 'rb') as f:
...: contents = f.read()
...:
...:
In [3]: exec(contents)
In [4]: mylist
Out[4]: [1, 2, 3, 4]
In [5]: myotherlist
Out[5]: [[1, 3, 4, 5], [3, 5, 3, 6]]
In [6]: print contents
mylist = [
1,
2,
3,
4]
myotherlist = [
[1, 3, 4, 5],
[3, 5, 3, 6]
]
文件是否有不可以人工编辑和/或人类可读? – Wessie
是的。它需要是可编辑和可读的。 – michael