[问题] 大量资料程式抓取

楼主: 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