[问题] 找寻超大档案内容但python会当掉

楼主: sariel0322 (sariel)   2014-07-09 22:12:34
想请问一下大家
我现在要用从一个相当大的文字档中找到对应的字串并写出
但是现在遇到一个问题是会一直当掉跑不动
想请问各位有没有不会当掉又执行速度快的方法
我读取两个档案
一个A.csv是1.5mb左右,只有在第一栏有东西
一个是B.txt,约17.4GB
我要将A.csv中有对应到一样字串的B的特定那一行写出
我的code如下:
import csv
g = open("A.csv","r")
f = open("B.txt","r")
o = open("output.txt","w")
Alist = []
for row in csv.reader(g):
Alist.append(row[0])
for row in f:
if row[0:5] in Alist:
o.write(row+"\n")
g.close()
f.close()
o.close()
感谢大家的帮忙
作者: jokester (蛮王科科)   2014-07-09 23:07:00
把Alist换成Aset, in应该会变快相应改成 Aset=set(); Aset.add(); row[0:5] in Aset;
作者: walao81 (Male)   2014-07-09 23:13:00
如果在linux底下,用subprocess run grep 会不会更快点?
作者: KSJ (阿真)   2014-07-09 23:47:00
当掉的原因是啥?你开工作管理员看一下 是不是内存不够的问题用IDLE跑看看 红字写啥用IDLE有红字吗?一直WRITE不flush 内存理论上会先满才是跑出来的档案结果有写什么进去吗?

Links booklink

Contact Us: admin [ a t ] ucptt.com