[問題] 大量資料程式抓取

作者: sariel0322 (sariel)   2014-12-22 17:09:32
大家好,我想在一個csv裡面
抓取可能只出現的一筆的那一行資料(或兩筆、三筆)
我寫了一個code,希望能用最快的速度將資料抓出來
已經在server上跑了結果似乎是卡住了?
目前問題: 有試過比較小資料量的資料,跑出來是可以的
可能是我的資料量太大,因此他跑到出現我設定的"start output"就靜止在那邊了
以下是我的code:
import csv
from collections import defaultdict
protein_table = defaultdict(list)
P = []
a = int(raw_input("times: "))
out = str(a+1) + " domain protein.csv"
o = open(out,"w")
f = open("multiple domain protein.csv","r")
for row in csv.reader(f):
P.append(row[1])
protein_table[row[1]].append(row[0]+","+row[1]+","+row[2]+","+row[3]+","+row[4]+"\n")
print "
作者: alibuda174 (阿哩不達)   2014-12-22 18:16:00
把start output之後的程式碼改成: 不知道可不可以for i in protein_table:if len(protein_table[i]) == a:for p in protein_table[i]:o.write(p)o.flush()啊,抱歉...不太對。請試試看吧...:D
作者: ccwang002 (亮)   2014-12-22 18:25:00
P.count 改成 Counter(P) 或 [k for k in set(P) ...]需要實測一下 Ref: stackoverflow.com/a/12452678
作者: jimmytzeng (jimmytseng)   2014-12-23 08:25:00
何不直接將csv匯入sqlite,在透過sql語法去搜尋?

Links booklink

Contact Us: admin [ a t ] ucptt.com