2014-04-29 70 views
0

我有一個程序,用於導入包含列表和詞典的.py文件,並在程序中使用它們。我正在製作另一個程序,目的是更改此數據庫.py文件中的列表和字典(添加或刪除部分列表/字典)。我會如何去做這件事?我是否需要逐行讀取.py文件,修改列表並覆蓋文檔?有沒有更好的辦法?在Python中修改.py文件

任何想法將不勝感激。如果覆蓋文件是最好的計劃,你怎麼做?

+2

是否有你的數據庫在.py文件中的原因?你可能會考慮改變它。您可以使用sqlite-DB或將數據存儲在CSV文件中,從而避免出現該問題。 – kratenko

+0

@kratenko據我所知,他並不是在談論大量的數據。只是一些名單/字典,在我看來,數據庫是一個過度殺傷 – Sazid

+0

這是正確的。它只包含大約15個字典和列表。 – Cole

回答

3

而不是直接編輯其他py文件中的py文件,您應該使用Pickle模塊。 Pickle模塊允許您將對象(字典,列表等)保存在二進制格式的文件中。然後,您可以從文件本身獲取這些字典或任何您保存的內容,而無需其他任何東西。

如果您想要純粹的簡單性和數據交換,您還可以使用模塊。

這裏是你如何能做到用JSON模塊類似的東西:

>> import json 
>> a = {'foo': 'bar', 'hello': 'jello'} 
>> json.dumps(a) 
>> '{"foo": "bar", "hello": "jello"}' 

注: json模塊將關閉任何單引號到雙引號JSON本身不接受單引號。 '轉儲'後也注意's'。它確保函數返回純字符串而不是任何二進制格式。

希望,可以幫助你:d

+0

對於列表和字典,JSON是比pickle更好的解決方案。泡菜是相當可怕的。 – geoffspear

+0

@Wooble謝謝,編輯:) – Sazid

+0

謝謝,我會研究這些。 – Cole

0

您可以使用SQLite或味酸模塊來代替,以允許更容易檢索數據/操縱從多個程序/腳本。