Python Language
Pythonの永続性
サーチ…
構文
pickle.dump(obj、file、protocol = None、*、fix_imports = True)
pickle.load(file、*、fix_imports = True、encoding = "ASCII"、errors = "strict")
パラメーター
パラメータ | 詳細 |
---|---|
オブジェクト | オープンファイルオブジェクトファイルへのobjのピクルされた表現 |
プロトコル | 指定されたプロトコル、 0 -ASCII、 1 - 古いバイナリ形式を使用するようにpicklerに指示します |
ファイル | file引数には、 dumpメソッドとread()メソッドのロード用のwrite()メソッドwb が必要ですrb |
Pythonの永続性
数値、リスト、辞書、ネストされた構造体、クラスインスタンスオブジェクトなどのオブジェクトは、コンピュータのメモリに格納され、スクリプトが終了するとすぐに失われます。
pickleはデータを別々のファイルに永続的に格納します。
オブジェクトのピクルされた表現は常にすべての場合においてバイトオブジェクトであるため、データを格納するためにwb
ファイルを開き、pickleからデータをロードするためにrb
をオープンする必要があります。
データは、いかなる種類のものであってもよい。例えば、
data={'a':'some_value',
'b':[9,4,7],
'c':['some_str','another_str','spam','ham'],
'd':{'key':'nested_dictionary'},
}
ストアデータ
import pickle
file=open('filename','wb') #file object in binary write mode
pickle.dump(data,file) #dump the data in the file object
file.close() #close the file to write into the file
データを読み込む
import pickle
file=open('filename','rb') #file object in binary read mode
data=pickle.load(file) #load the data back
file.close()
>>>data
{'b': [9, 4, 7], 'a': 'some_value', 'd': {'key': 'nested_dictionary'},
'c': ['some_str', 'another_str', 'spam', 'ham']}
以下のタイプは酸洗することができます
- なし、真、偽
- 整数、浮動小数点数、複素数
- 文字列、バイト、バイト文字
- pickableオブジェクトのみを含むタプル、リスト、セット、および辞書
- モジュールのトップレベルで定義された関数(lambdaではなくdefを使用)
- モジュールの最上位レベルで定義された組み込み関数
- モジュールのトップレベルで定義されているクラス
- dictまたはgetstate ()を呼び出した結果のそのようなクラスのインスタンス
保存と読み込みのための関数ユーティリティ
ファイルとの間でデータを保存する
import pickle
def save(filename,object):
file=open(filename,'wb')
pickle.dump(object,file)
file.close()
def load(filename):
file=open(filename,'rb')
object=pickle.load(file)
file.close()
return object
>>>list_object=[1,1,2,3,5,8,'a','e','i','o','u']
>>>save(list_file,list_object)
>>>new_list=load(list_file)
>>>new_list
[1, 1, 2, 3, 5, 8, 'a', 'e', 'i', 'o', 'u'
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow