python读取超大csv文件_python – 读取一个巨大的.csv文件

我目前正试图从Python 2.7中的.csv文件读取数据,最多1百万行和200列(文件范围从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文件中,所以我离开循环,当我得到它们以节省时间。

我的问题是:

>我如何能够使这个工作与更大的文件?

>有什么办法可以让它更快吗?

我的电脑有8GB RAM,运行64位Windows 7,处理器是3.40 GHz(不确定你需要什么信息)。

非常感谢任何帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值