私はPythonに少し慣れていないので、楽しみのためにユーザー名とパスワードのログインシステムを作成していました。ユーザー名とパスワードを保存するために辞書を使用しています。ディクショナリにアカウントを追加できるようにします。次にプログラムを実行するときのためにディクショナリを保存する方法が必要です。どうすればいいですか?
5 に答える
データを永続化するには多くのオプションがありますが、簡単な方法の 1 つは使用することですshelve
以下を使用してデータを保存できます。
>>> import shelve
>>> data = {'foo':'foo value'}
>>> d = shelve.open('myfile.db')
>>> d['data'] = data
>>> d.close()
その後、データを簡単に回復できます。
>>> import shelve
>>> d = shelve.open('myfile.db')
>>> data = d['data']
>>> d.close()
Python でファイルを読み書きする方法を学び、ユーザー名とパスワードをテキスト ファイルに保存するだけです。
多くのオプションがあります。ネイティブ Python の入力と出力がどのように機能するかを学習することから始めることができます。
次に、 sqliteを試すことができます。
最後に、適切なデータベース (MySQL、PostgreSQL、MongoDB など) を使用します。
このshelve
モジュールは、jabaldonedo によって提案されているように、辞書のドロップイン代替品です。ただし、値がすべて文字列である場合でもshelve
、やり過ぎです。あなたはただ使うことができますdbm
。
いずれにせよ、変更する必要があるのは 1 行だけです。
d = {} # in-memory, non-persistent dict
d = shelve.open('passwd.db', 'c') # persistent dict that can store anything
d = dbm.open('passwd.db', 'c') # persistent dict that only stores strings
dbm の利点は、他のツールを使用してデータベースを読み取り (および編集) できることです。たとえば、次のようにします。
d['abc'] = 'def'
を使用dbm
すると、データベースは文字列を保持します'def'
。のshelve
場合、 のようなものが保持されます'\x80\x03X\x03\x00\x00\x00defq\x00.'
。