7
巨大な.csvファイルの読み取り
現在、最大100万行、200列のPython 2.7の.csvファイルからデータを読み取ろうとしています(ファイルの範囲は100mbから1.6gbです)。300,000行未満のファイルに対してこれを(非常にゆっくりと)実行できますが、それを超えるとメモリエラーが発生します。私のコードは次のようになります: def getdata(filename, criteria): data=[] for criterion in criteria: data.append(getstuff(filename, criteron)) return data def getstuff(filename, criterion): import csv data=[] with open(filename, "rb") as csvfile: datareader=csv.reader(csvfile) for row in datareader: if row[3]=="column header": data.append(row) elif len(data)<2 and row[3]!=criterion: pass elif row[3]==criterion: data.append(row) else: return data getstuff関数のelse句の理由は、基準に一致するすべての要素がcsvファイルにまとめてリストされるため、時間を節約するためにそれらを通過したときにループを終了するためです。 私の質問は: これを大きなファイルで動作させるにはどうすればよいですか? 速くする方法はありますか? 私のコンピューターには8 …
107
python
python-2.7
file
csv