2017-05-23 50 views
1

我正在處理非常大型的.csv文件,並試圖找到文件中的行數以及其他內容,如解析爲json等。使用python查找大型.csv文件中的行數

我的問題是我怎麼克服CSV庫的侷限性,因爲我不斷收到以下錯誤。

我提供了一個示例程序,我知道在python3,將返回CSV文件的行數工作。

import csv 

    input = 'large-input.csv' 
    with open(input ,"r") as f: 
     reader = csv.reader(f,delimiter = ",") 
     data = list(reader) 
     row_count = len(data) 
     print(row_count) 

但是,當我對1.5GB的csv文件運行時,我繼續收到此錯誤。

Traceback (most recent call last): 
    File "csv-len.py", line 6, in <module> 
    data = list(reader) 
_csv.Error: field larger than field limit (131072) 

任何工作周圍這個問題非常感激。謝謝!相比,只是計數的行數

+0

@OwawafemiSule這個問題是不同的。將CSV讀入發生器將無濟於事。你仍然需要耗盡發電機的長度。 –

回答

0

的CSV通常換行符分隔以便通過一個CSV分析器運行它只是計數的行數可能是低效的。

像這樣的事情會快得多。如有必要,您可以爲標題減去一行。

def row_count(input): 
    with open(input) as f: 
     for i, l in enumerate(f): 
      pass 
    return i 
相關問題