我有一個程序,用於導入包含列表和詞典的.py文件,並在程序中使用它們。我正在製作另一個程序,目的是更改此數據庫.py文件中的列表和字典(添加或刪除部分列表/字典)。我會如何去做這件事?我是否需要逐行讀取.py文件,修改列表並覆蓋文檔?有沒有更好的辦法?在Python中修改.py文件
任何想法將不勝感激。如果覆蓋文件是最好的計劃,你怎麼做?
我有一個程序,用於導入包含列表和詞典的.py文件,並在程序中使用它們。我正在製作另一個程序,目的是更改此數據庫.py文件中的列表和字典(添加或刪除部分列表/字典)。我會如何去做這件事?我是否需要逐行讀取.py文件,修改列表並覆蓋文檔?有沒有更好的辦法?在Python中修改.py文件
任何想法將不勝感激。如果覆蓋文件是最好的計劃,你怎麼做?
而不是直接編輯其他py文件中的py文件,您應該使用Pickle模塊。 Pickle模塊允許您將對象(字典,列表等)保存在二進制格式的文件中。然後,您可以從文件本身獲取這些字典或任何您保存的內容,而無需其他任何東西。
如果您想要純粹的簡單性和數據交換,您還可以使用模塊。
這裏是你如何能做到用JSON模塊類似的東西:
>> import json
>> a = {'foo': 'bar', 'hello': 'jello'}
>> json.dumps(a)
>> '{"foo": "bar", "hello": "jello"}'
注: json模塊將關閉任何單引號到雙引號JSON本身不接受單引號。 '轉儲'後也注意's'。它確保函數返回純字符串而不是任何二進制格式。
希望,可以幫助你:d
對於列表和字典,JSON是比pickle更好的解決方案。泡菜是相當可怕的。 – geoffspear
@Wooble謝謝,編輯:) – Sazid
謝謝,我會研究這些。 – Cole
您可以使用SQLite或味酸模塊來代替,以允許更容易檢索數據/操縱從多個程序/腳本。
是否有你的數據庫在.py文件中的原因?你可能會考慮改變它。您可以使用sqlite-DB或將數據存儲在CSV文件中,從而避免出現該問題。 – kratenko
@kratenko據我所知,他並不是在談論大量的數據。只是一些名單/字典,在我看來,數據庫是一個過度殺傷 – Sazid
這是正確的。它只包含大約15個字典和列表。 – Cole