0

csvモジュールを使用して、pythonを使用してcsvファイルからリストに行を抽出しています。csv ファイルは約 45,000 行とかなり大きく、一部の行が破損しているようです。
Python の csv.reader モジュールを使用すると、約 1000 行しか読み取れず、破損した行に到達して読み取りが停止し、エラー メッセージも表示されません。ファイルが非常に大きいため、手動で変更するのは非常に困難です。最初の破損した行に対して 1 回実行したところ、さらに 500 行を読み取ることができた後、別の破損した行に到達して停止したようです。サイズが大きいため (~500 MB)、ファイルを開いて編集することはできないため、これに対処する方法についてアイデアをいただければ幸いです。

ありがとうございました。

4

2 に答える 2

0

各行がエントリであると想定しても安全な場合は、たとえば、ファイルを最大 500 行のチャンクに分割してみてください。解析されたエントリの数が行の数ではないことに気付いたら、その小さなサブセットを調べることができます。等々。

例えば:

for i, line in enumerate(original_file):
    chunk_file.write(line+'\n')
    if i == 500: break

次に を解析しchunk_file、解析されたデータの量を確認します。等しい場合は続行します。そうでない場合は、そこで破損しています。

于 2013-01-01T16:09:30.817 に答える