存储文本文件中的列表

时间:2016-12-06 19:55:06

标签: python python-2.7

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

文本文件示例:

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

3 个答案:

答案 0 :(得分:5)

看起来你的数据是有效的json:

Func0

从文件加载:

>>> 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.load也可以处理该数据。

答案 1 :(得分: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 :(得分: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文字   结构:字符串,字节,数字,元组,列表,dicts,集,   布尔,没有。