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」がありました)。この文字列を分割したくありませんが、1 つのアイテムにしたいです。

テキストファイルから行を取得したいので、これがうまくいかない場合は、[ '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

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