1

这是一个与许多人相似的问题,但并不完全相同。我有一个包含大约 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 and , e string')。我不希望这个字符串被拆分,但希望它作为一个项目。

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

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

谢谢您的帮助!

4

1 回答 1

4

帝斯曼

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'))
于 2013-04-18T15:41:36.337 回答