簡體   English   中英

在 Python 腳本中存儲用戶數據

[英]Storing user data in a Python script

如果我在下次運行腳本時再次需要數據,那么在運行 Python 腳本時存儲用戶輸入的數據的首選/常用方法是什么?

例如,我的腳本根據用戶輸入的內容執行計算,然后當用戶再次運行腳本時,它會獲取上次運行的結果。

現在,我將數據寫入文本文件並從那里讀取。 我不認為我需要存儲非常大的記錄(我會說少於 100)。

我使用此腳本針對 Windows 和 Linux 用戶,因此跨平台解決方案會很好。 我對使用文本文件的唯一擔憂是我覺得它可能不是最好的和通常的做法。

所以我的問題是,如果你需要為你的腳本存儲一些數據,你會怎么做?

您可以使用 slite 數據庫或 CSV 文件。 它們都非常易於使用,但適用於具有相同類型信息的行。

最好的選擇可能是擱置模塊

import shelve

shelf = shelve.open(filename)
shelf['key1'] = value1
shelf['key2'] = value2

shelf.close()
 # next run
shelf.open(filename)

value1 = shelf['key1']
#etc

對於少量數據, Python 的pickle 模塊非常適合存儲您希望以后輕松訪問的數據——只需從內存中pickle 數據對象並寫入用戶主文件夾中的(隱藏)文件(適用於Linux 等)或應用程序數據(在 Windows 上)。

其中,正如@aaronnasterling 所提到的,基於sqlite3 文件的數據庫體積小、速度快且簡單,難怪 Firefox 和 Pidgin 等許多流行程序都使用它。

對於 100 行,純文本適用於標准的ConfigParsercsv模塊。

假設您的數據結構很簡單,文本提供了更復雜的格式所排除的機會(例如 grep、vi、記事本)。

由於您只需要最后一個結果,因此只需將結果存儲在一個文件中。

示例

write('something', wb)

它只會存儲最后的結果。 然后當你重新運行腳本時, openread之前的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM