Python和读取包含字符串和数字的列表的文本文件

时间:2013-04-18 15:23:54

标签: python text-files

对许多人来说,这是一个类似的问题,但并不完全相同。我有一个文本文件,有大约400,000行文本。每行基本上都是一个列表。例如,它看起来像[ 'a','b',1,2,'c',3,'d and , e string', 45]

我可以使用以下代码读取文本文件的每一行:

with open('myfile.txt') as f:
    content = f.readlines()

问题是每一行都被读作一个字符串。我想获得列表中的每个项目。所以我想我会这样做(每一行):

content[line].split(',')

这几乎可行,但我遇到了一个问题。很多时候,在我的文本文件中,我在列表中有一个逗号括起来的字符串(从上面我有' d和e字符串')。我不希望这个字符串分开,但希望它作为一个项目。

如果这样做没有,因为我想从我的文本文件[ 'a','b',1,2,'c',3,'d and , e string', 45]中获取该行,并且我想要8个单独的元素

'a'
'b'
1 
2
'c'
3
'd and , e string'
45

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

DSM

from ast import literal_eval

# use generator 
# instead of allocating 
# 400 000 lists at a time
your_lists = (literal_eval(s) for s in open('filename.txt'))