2014-01-25 110 views
0

我需要從並行的服務器數量中追加文本(行)到.json文件。這工作但有一些缺點(寫行到其他行的中心)。有人知道如何處理它嗎?感謝Python並行寫入文件

with open(sys.argv[2],'a') as w: 

    w.writelines(json.dumps(record)+"\n") 
+0

你可以在文件上使用鎖嗎? – dm03514

回答

0

您有幾種選擇:

  1. 鎖定莫名其妙的文件。這是依賴於系統和文件系統的,我不確定如何在Python中執行此操作,但我相信這是可能的。

  2. 使用其他一些同步機制。如果所有進程都在同一臺機器上運行,則可以使用某個OS互斥對象。如果他們運行在不同的機器上,則可能需要某種鎖服務器。

  3. (最簡單)讓每個進程寫入其自己的文件,並有一個合併所有文件的進程。