Python:如何从文本文件中读取列表

时间:2013-12-03 03:43:24

标签: python-2.7

我有一个包含列表的python文件。

localhost tmp]$ cat 1.txt 
['aaaaaaa','bbbbbbb','cccccc','dddddddd']

我想阅读列表中的每个元素。我得到的每个角色都是。 如果它被声明为列表变量,我可以读取列表的每个值,但我的列表在文本文件中。

#!/usr/bin/python
def get_vminfo(vms):
    for vm in vms:
        print vm

#vms=['aaaaaaa','bbbbbbb','cccccc','dddddddd']
with open('1.txt','r') as input:
    vms=input.read()

get_vminfo(vms)    

如何打印每个列表值???

2 个答案:

答案 0 :(得分:1)

使用ast.literal_eval

>>> import ast
>>> with open('1.txt') as f:
...     ast.literal_eval(f.read())
... 
['aaaaaaa', 'bbbbbbb', 'cccccc', 'dddddddd']

>>> with open('1.txt') as f:
...     for x in ast.literal_eval(f.read()):
...         print x
... 
aaaaaaa
bbbbbbb
cccccc
dddddddd

答案 1 :(得分:0)

这适用于较小的文件。请记住,数据存储在计算机的内存中,因为它构建了一个数据数组,因此,如果您要处理大文件,那么使用迭代器代替这种方法会更好。

遗憾的是,在迭代器中,您无法访问已读取的数据。