我目前正试图从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(不确定你需要什么信息)。

非常感谢任何帮助!

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信