2014-06-26 51 views
-1

我一直在挖掘推文。我一直面臨的主要問題是 - 我必須將推文編碼爲UTF-8,然後將它們寫入文件。在Python中更快地寫入文件

我目前的方法:

def on_data(self,data): 
    f=open('new','w') 
    dict1=json.loads(data) 
    val=dict1["text"] 
    val= codecs.encode(val,"utf-8","ignore") 
    var.x+=1 
    f.write(str(var.x)+"\t"+val+"\n") 
    return True 

任何方式加速這一進程?

+4

I *高度*懷疑編碼和保存推文是瓶頸。 API很可能只是很慢。簡介可以肯定! – nneonneo

+0

現在幾點了?你期望什麼時候? Twitter用數據回覆的速度有多快?你的寫作速度有多快?等等(總之,涉及的變量太多) – RvdK

+0

這是不相關的,但既然你只需要文本字段,你可能想使用on_status方法 – user2963623

回答

1

你沒有關閉文件,這意味着你必須等到Python發現它可以在文件句柄不再被使用時安全地關閉。

假設你真的想創建一個新的空文件每次on_data()被調用時,你可以使用一個with statement有Python的關閉你的文件的時候with退出塊:

def on_data(self, data): 
    dict1 = json.loads(data) 
    val = dict1["text"] 
    val = codecs.encode(val,"utf-8", "ignore") 
    var.x+=1 
    with open('new', 'w') as f: 
     f.write(str(var.x) + "\t" + val + "\n") 
    return True