2016-12-06 69 views
3

我有一个文本文件,其中包含第一行的列表。 如何读取文件并将第一行存储在列表中? 我想将第一行作为完整列表存储而不是字符串。文本文件的从文本文件存储列表

例子:

[[1,2,3],[4,5,6],[7,8,9],[10,11,12]] 
+4

2 upvotes? OP显然没有尝试。 –

回答

5

它看起来像你的数据是有效的JSON:

>>> import json 
>>> json.loads('[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]') 
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] 

从文件加载:

with open('my_file.txt') as f: 
    my_list = json.load(f) 

同样,yaml.loadast.literal_eval也可以处理这些数据。

3

可以使用ast模块

import ast 

s = '[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]' 
s = ast.literal_eval(s) 
print s, type(s) 

>>> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] <type 'list'> 
2

您可以使用ast.literal_eval()象下面这样:

>>> import ast 
>>> 
>>> ast.literal_eval('[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]') 
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] 

这就是为什么你应该使用ast.literal_eval()来评估你的字符串:

AST .literal_eval(node_or_string)

安全地评估表达式节点或 包含Python文字或容器显示的字符串。字符串 或提供的节点可能只包含以下Python文字 结构:字符串,字节,数字,元组,列表,字典,集合, 布尔值和无。