我正在尋找一種在python中使用常用或集中字典的方法。我有幾個工作在相同數據集上的腳本,但做了不同的事情。我在這些腳本中使用了dictionarys(例如,工具名稱),這些腳本用於多個腳本中。如果我做出改變或增加價值,我必須讓所有腳本都這樣做,這當然是痛苦的,並且容易出錯。python中的常見或集中字典
有沒有可能,我有一本字典,並在所有不同的腳本中使用它?
任何幫助表示讚賞 - 謝謝。
我正在尋找一種在python中使用常用或集中字典的方法。我有幾個工作在相同數據集上的腳本,但做了不同的事情。我在這些腳本中使用了dictionarys(例如,工具名稱),這些腳本用於多個腳本中。如果我做出改變或增加價值,我必須讓所有腳本都這樣做,這當然是痛苦的,並且容易出錯。python中的常見或集中字典
有沒有可能,我有一本字典,並在所有不同的腳本中使用它?
任何幫助表示讚賞 - 謝謝。
對於這種情況,我在我的項目根目錄中有一個general_values.py
文件。
由於列表和dictionaries
都使用參考存儲值,使用不同的腳本相同dict
或list
不會引起問題,因爲它們都將使用存儲在內存中的同一個數據。
Likwise:
main_values.py
my_dict = {1:1}
some.py
import main_values
main_values.my_dict[2] = 2
other.py
import main_values
print main_values.my_dict
>> {1:1, 2:2}
所有答案都有幫助。我期待着沿着這條路線發展,但只是想不出如何去做。 –
我,如果你談論的是在同一進程中運行需要共享同一數據多個腳本,或幾個過程並沒有完全明白:
幾個過程:
我想在幾個腳本(不同進程)之間共享數據的最簡單方法是使用簡單的文件數據庫。
SQLite3與Python捆綁在一起,所以這將是一個不錯的選擇。
單進程:
如果你只是想集中在同一時間(在同一進程中)運行的幾種方法訪問,那麼你可以聲明在一個腳本你的字典,並擁有所有的其他人訪問該位置,而不復制該結構。 您基本上在腳本中聲明瞭這個字典,並將其導入所有其他字體中。
一些選項:
dict
樣接口在整個進程間持久化密鑰並可用於其他語言。
將字典寫在它自己的文件中並導入它? –
不同的腳本=不同的過程。 他們會共享內存嗎?如果僅讀取數據,那麼它將工作,但如果您修改一個腳本中的數據? 我認爲@pcalcao是正確的 –
Jochens的建議是我現在正在做的。 FallenAngle的一個非常好的例子 - 感謝所有的答案。 –