2

大きくなるにつれてリストを保存する必要があるアプリケーションがあります。これは、AI学習を行うためのステップです。とにかくここに私のコードがあります:

vocab = ["cheese", "spam", "eggs"]

word = raw_input()

vocab.append(word)

ただし、コードを実行すると、完成したものはチーズ、スパムvocabだけに戻ります。Windows CMDを閉じてコード編集段階に戻った場合でも、リストに追加したものを永続的に保持するにはどうすればよいですか。これで十分ですか?ありがとう

4

4 に答える 4

5

オブジェクトの永続性のより一般的な問題を調べています。これを行う方法は無数にあります。始めたばかりの場合、Python でデータ構造を保存/復元する最も簡単な方法は、pickle モジュールを使用することです。より高度になるにつれて、さまざまな方法があり、それらにはすべてトレードオフがあります...必要に応じて学習します。

于 2012-05-10T21:08:23.670 に答える
4

漬物を調べる

これを使用すると、Python データ構造をシリアル化し、次のように再読み込みできます。

>>> import pickle
>>> vocab =["cheese", "spam", "eggs"]
>>> outf=open('vocab.pkl','wb')
>>> pickle.dump(vocab,outf)
>>> outf.close()
>>> quit()

Python インタープリターが終了し、Python を再起動してデータ構造をリロードします。

abd-pb:~ andrew$ python
Python 2.7.1 (r271:86882M, Nov 30 2010, 10:35:34) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pickle
>>> pklf=open('vocab.pkl','rb')
>>> l=pickle.load(pklf)
>>> l
['cheese', 'spam', 'eggs']
于 2012-05-10T21:07:55.143 に答える
4

次のようなjsonとファイルを使用できます。

import json

#write the data to a file
outfile = open("dumpFile", 'w')
json.dump(vocab, outfile)

#read the data back in
with open("dumpFile") as infile:
    newVocab = json.load(infile)

これには、プレーン テキスト ファイルであるという利点があるため、格納されているデータを簡単に表示できます。

于 2012-05-10T21:13:31.283 に答える
1

pickle を使用することもできますが、手法としては Python プログラムに限定されます。永続データを処理する通常の方法は、ファイルに書き込むことです。通常のテキスト ファイルから単語リストを読み取り (1 行に 1 単語)、後で更新された単語リストを書き出すだけです。後で、この種の情報をデータベースに保持する方法を学習できます (ファイルよりも強力ですが、柔軟性は低くなります)。

実際に pickle を必要とせずに何年も楽しくプログラミングできますが、ファイル I/O とデータベースなしではできません。

PS。シンプルに保ちます。構造が必要でない限り、必要になるまで、json、pickle、またはその他の構造化された形式をいじる必要はありません。

于 2012-05-10T21:14:07.410 に答える