[問題] 找尋超大檔案內容但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