Python将txt文件读入数字列表列表

dat*_*ata 3 python

我的txt文件是这样的:

[[1,3,5],[1,4,4]]
[[1,4,7],[1,4,8],[2,4,5]]
Run Code Online (Sandbox Code Playgroud)

我试图将它转换成一个列表,其中包含 txt 文件中的所有列表。因此,我的示例所需的输出是:

[[[1,3,5],[1,4,4]], [[1,4,7],[1,4,8],[2,4,5]]]
Run Code Online (Sandbox Code Playgroud)

这似乎是一项简单的任务,只是我只能得到这个:

['[[1,3,5],[1,4,4]]', '[[1,4,7],[1,4,8],[2,4,5]]']
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以将字符串类型转换为列表?


我使用的代码:

input_list = []
with open("./the_file.txt", 'r') as f:
    lines = f.read().split('\n')
    for each_line in lines:
        input_list.append(each_line)

f.close()
Run Code Online (Sandbox Code Playgroud)

ins*_*get 5

您确实想将文件中的每一行作为实际的 Python 代码进行评估。但是,这样做可能会有问题(例如:如果一行说 会发生什么import os; os.system('rm -rf /'))。

所以,你不希望使用类似eval这种

相反,您可以考虑使用ast.literal_eval,它对此类行为有一些保护措施:

with open("./the_file.txt", 'r') as f:
    answer = [ast.literal_eval(line.strip()) for line in f]
Run Code Online (Sandbox Code Playgroud)