2016-04-26 29 views

回答

1

不確定你的意思是超時,對於像這樣的大文件,它總是需要很長時間。

tokens = {} 
with open("your.csv") as infile: 
    for line in infile: 
     columns = line.split(',') 
     # Where idx is your desired column index 
     if columns[idx] not in tokens: 
      tokens[columns[idx]] = 0 
     else: 
      tokens[columns[idx]] += 1 

print tokens 

這樣一行一行地加載文件,所以你的計算不會從將217 GB加載到RAM中時崩潰。你可以先試試看這本詞典是否適合你電腦的內存。否則,你可能想考慮以分而治之的方式將文件分割成更小的塊。

-1

你可以試着加大field_size_limit

import csv 
csv.field_size_limit(1000000000) 

r = csv.reader(open('doc.csv', 'rb')) 

for row in r: 
    print(row) # do the processing