Python-从文件中读取两个列表作为列表

时间:2017-01-08 09:40:55

标签: python list

我在.txt文件中有两个列表,我需要python来读取文件并在变量名下创建两个单独的列表。目前我可以读取数据并将其拆分为两个变量([:pointer]和[pointer:]),但Python将这些变量解释为字符串。任何方式我都可以将这些解释为列表而不会破坏格式化(我尝试过.split()和list(),这些都会打破格式化。

我在文件中有什么:

header.htm

我需要将它读入两个变量,因此它是这样的:

["A","B","C","D","E","F"]
[0,1,2,3,4,5,6,7,8,9,10]

这样我可以使用以下方法:

List1 = ["A","B","C","D","E","F"]
List2 = [0,1,2,3,4,5,6,7,8,9,10]

如果你能帮助我,我会非常感激。所以,我只需要将.txt文件中的两个列表作为两个单独的列表读入Python。

1 个答案:

答案 0 :(得分:3)

您可以通过ast.literal_eval使用map

来实现此目的
import ast

with open('/path/to/my_file.txt') as f:
    my_list = map(ast.literal_eval, f.readlines())
    #                 ^ to convert *list like string* to `list` object

现在,您可以使用以下索引访问单个列表:

>>> my_list[0]
['A', 'B', 'C', 'D', 'E', 'F']
>>> my_list[1]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

如果必须将其存储到变量中(尽管我强烈建议根据索引访问值),您可以将返回的列表打开变量为:

list1, list2 = map(ast.literal_eval, f.readlines()) 

# Note: Number of variables used to unwrap the list should be 
#       equal to count of nested lists.