我的文本文件由同一行上的一系列数组组成(即没有缩进)。我试图将这些数组放入python列表中。
文本文件是这样的:
[1,2,3,4],[1,2,3,5],[1,2,3,6],[1,2,3,7],[1,2,3,8],[1,2,3,9],[1,2,3,10]........
我试图接受这个并制作一份清单,例如:
[[1,2,3,4],[1,2,3,5],[1,2,3,6],[1,2,3,7],[1,2,3,8],[1,2,3,9],[1,2,3,10]]
我尝试使用read方法,但我得到的只是一个巨大的字符串。
答案 0 :(得分:1)
首先,在您的文件中read()
并将其保存到变量(相当于此):
a = '[1,2,3,4],[1,2,3,5],[1,2,3,6],[1,2,3,7],[1,2,3,8],[1,2,3,9],[1,2,3,10]'
如果您不想使用eval()
,则可以使用更安全的ast.literal_eval()
:
import ast
list(ast.literal_eval(a))
如果您不想使用任何类型的评估,可以使用内置函数和字符串方法:
[list(map(int, line.split(','))) for line in a.strip('[]').split('],[')]
这些都会产生以下结果:
[[1, 2, 3, 4], [1, 2, 3, 5], [1, 2, 3, 6], [1, 2, 3, 7], [1, 2, 3, 8], [1, 2, 3, 9], [1, 2, 3, 10]]