Skip to main content
 首页 » 编程设计

python之通过在 Python 中读取文件获取列表

2025年05月04日10sxdcgaq8080

有一件事我无法用 Python 解决。

我正在尝试通过读取文件(如 .xml 或 .txt)来获取列表。

我已经将我的列表放在我的文件中的一个大列表中:

[[48,49,39,7,13,1,11],[46,27,19,15,24,8,4],[35,5,41,10,31,5,9],[12,9,22,2,36,9,2],[50,47,25,6,42,3,1]] 

现在我正在寻找代码来获得像列表一样的大列表,而不是字符串。事实上,我已经尝试使用 open()、write() 和 read() 函数的部分代码。但是 Python 返回了我:

'[[48,49,39,7,13,1,11],[46,27,19,15,24,8,4],[35,5,41,10,31,5,9],[12,9,22,2,36,9,2],[50,47,25,6,42,3,1]]' 

它不是一个列表,只是一个字符串。所以我不能使用列表的功能来修改它。

感谢那些愿意回答我问题的人

请您参考如下方法:

嗯,一个简单的方法是将其解析为json字符串:

>>> import json 
>>> l_str = '[[48,49,39,7,13,1,11],[46,27,19,15,24,8,4],[35,5,41,10,31,5,9],[12,9,22,2,36,9,2],[50,47,25,6,42,3,1]]' 
>>> l = json.loads(l_str) 
>>> print l 
[[48, 49, 39, 7, 13, 1, 11], [46, 27, 19, 15, 24, 8, 4], [35, 5, 41, 10, 31, 5, 9], [12, 9, 22, 2, 36, 9, 2], [50, 47, 25, 6, 42, 3, 1]] 

如果你想加载一个仅包含该字符串的文件,你可以简单地使用以下方法来完成:

>>> import json 
>>> with open('myfile') as f: 
>>>     l = json.load(f) 
>>>     print l 
[[48, 49, 39, 7, 13, 1, 11], [46, 27, 19, 15, 24, 8, 4], [35, 5, 41, 10, 31, 5, 9], [12, 9, 22, 2, 36, 9, 2], [50, 47, 25, 6, 42, 3, 1]] 

但是如果你想要序列化 ​​python objects,那么你应该使用 pickle那在那个任务上更强大......

当然,其他人可能会通过类似 eval() 的函数为您提供其他方法来解析您的字符串,但我强烈建议您不要这样做,因为这很危险并会导致不安全的代码。 编辑:阅读@kamikai 的回答后,我发现了 ast.literal_eval()这看起来也是一个不错的选择,虽然 json.loads() is more efficient .