2017-04-07 29 views
0

我有我的腳本中產生的字典:Python從單獨的腳本添加字典值運行

dict1 = {'a': 1, 'b': 2, 'c':3} 

生成字典中的腳本將在不同的文件中多次運行產生更多的字典,每個內的自己的腳本:

dict2 = {'a': 5, 'b': 3, 'c':2} 
dict3 = {'a': 2, 'b': 1, 'c':0} 

我的計劃是將這些單獨添加到文件中,然後用相同的鍵添加值(例如,對於「A」的一個條目:8),一旦該文件已被附加了所有的字典。

有沒有辦法在添加到文件中時添加字典的值?或者其他方式來做到這一點,導致在每個腳本完成時添加值?

編輯:我是新來的編碼,請慢慢清楚地解釋一下,如果可以的話。 :)

+0

只有一個'dict0'併爲所有文件調用例如'dict0 ['a'] + = some_value'有什麼問題? – Julien

+0

也許[這](https://docs.python.org/3/library/shelve.html)可能有幫助? –

+0

這些文件是否並行運行?是否有一個主程序運行它們?如果這個程序只是連續運行的話,你可以把數據寫入單個文件,否則可以將數據寫入多個文件('tempfile.mkstemp'可能會有幫助)。一個較重的電梯,但在你的環境良好的是'couchdb'或'mongodb'與地圖減少工作,以跟蹤當前值。 – tdelaney

回答

0

我想將新生成的詞典值添加到預先存在的文件。

例如,字典1將已經在文件中。我這樣做是與

with open(file.txt, "w") as f: 
     for i in dict.keys(): 
      f.write(i + " " + str(dict[i]) + "\n") 

添加詞典2,字典3,等到文件: 我把那有dict1與

for line in f: 
      values = line.split(sep) 
      dict[values[0]] = int(values[1]) 

重新把它寫進一本字典的file.txt的然後我在程序中添加了兩個字典,並將新字典重新寫回到文件中。

可能不是最優雅的答案,但它的工作原理!