3

私はPythonに少し慣れていないので、楽しみのためにユーザー名とパスワードのログインシステムを作成していました。ユーザー名とパスワードを保存するために辞書を使用しています。ディクショナリにアカウントを追加できるようにします。次にプログラムを実行するときのためにディクショナリを保存する方法が必要です。どうすればいいですか?

4

5 に答える 5

7

データを永続化するには多くのオプションがありますが、簡単な方法の 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() 

その他のオプションは、MySQL などfilesCPickleデータベースを使用しています。SQLite

于 2013-06-18T21:27:33.977 に答える
2

必要に応じて、情報をテキスト ファイルに保存するか、データベースを使用できます。テキスト ファイルへの保存にはエンコーディングは必要ありませんが、Python で一般的な 2 つの形式/ライブラリはjsonpickleです。代わりにデータベースを使用したい場合は、mysql または sqlite を検討することをお勧めします。

于 2013-06-18T21:29:42.500 に答える
0

Python でファイルを読み書きする方法を学び、ユーザー名とパスワードをテキスト ファイルに保存するだけです。

于 2013-06-18T21:27:32.570 に答える
0

多くのオプションがあります。ネイティブ Python の入力と出力がどのように機能するかを学習することから始めることができます。

次に、 sqliteを試すことができます。

最後に、適切なデータベース (MySQL、PostgreSQL、MongoDB など) を使用します。

于 2013-06-18T21:28:10.117 に答える
0

この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.'

于 2013-06-18T21:33:57.723 に答える