2016-04-26 87 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