ホームページ  >  記事  >  バックエンド開発  >  この記事は、Python の pickle モジュールを理解するのに役立ちます

この記事は、Python の pickle モジュールを理解するのに役立ちます

Go语言进阶学习
Go语言进阶学习転載
2023-07-25 14:27:161750ブラウズ

1. pickle モジュールとは何ですか?

永続化モジュールとは何ですか?

永続化モジュール: データを永続化します。

pickle モジュールは、カスタム クラスを含むさまざまなデータを永続化できる Python 固有の永続化モジュールであり、Python 自体で複雑なデータを保存するのに適しています。

ただし、永続化された文字列は読み取ることができず、Python 環境でのみ使用でき、他の言語とのデータ交換には使用できません。


#2. pickle モジュールの役割

Python オブジェクトを直接保存する最初に文字列に変換して保存することなく、また基礎となるファイル アクセス操作を使用せずに、バイナリ ファイルに直接書き込みます。 pickle モジュールは、Python 言語に固有のバイナリ形式を作成します。ユーザーはファイルの詳細を考慮する必要はありません。オブジェクトの読み取りおよび書き込み操作を完了するのに役立ちます。 pickle を使用すると、ファイルを開いてデータ形式を変換して書き込むよりも多くのコード行を節約できます。


3. 主なメソッド

pickle での dumps() および loads() 操作はバイトです。 dump() と lload() を使用しながら型を読み取ります。ファイルを書き込む場合は、rb または wb モードを使用します。これは、バイト型データのみを受信することを意味します。

1. pickle.dump(obj, file)

Python データを pickle 形式のファイルに変換して保存します。

with open('data.pickle', 'wb') as f:
    pickle.dump(data, f)

上で保存したデータ ファイルをテキスト エディタで開くと、すべて判読できないエンコードになっていることがわかります。

#操作結果:

この記事は、Python の pickle モジュールを理解するのに役立ちます

2. pickle.dumps(obj)  

将Python数据转换为pickle格式的bytes字串。

import pickle
dic = {"k1":"v1","k2":123}
s = pickle.dumps(dic)
print(s)

运行结果:

この記事は、Python の pickle モジュールを理解するのに役立ちます

3. pickle.load(file)  

从pickle格式的文件中读取数据并转换为Python的类型。

with open('data.pickle', 'rb') as f:
    data = pickle.load(f)

4. pickle.loads(bytes_object)  

将pickle格式的bytes字串转换为Python的类型。

import pickle
dic = {"k1":"v1","k2":123}
s = pickle.dumps(dic)
dic2 = pickle.loads(s)
print(dic2)

运行结果:

この記事は、Python の pickle モジュールを理解するのに役立ちます


四、项目演示

例1:

import pickle


with open('data.pickle', 'rb') as f:
    data = pickle.load(f)

.picklle 格式的文件,用记事本打开是乱码。

运行结果:

この記事は、Python の pickle モジュールを理解するのに役立ちます


例2

Pickle可以持久化Python的自定义数据类型,但是在反持久化的时候,必须能够读取到类的定义

import pickle


class Person:
    def __init__(self, n, a):
        self.name = n
        self.age = a


    def show(self):
        print(self.name+"_"+str(self.age))


aa = Person("张三", 20)
aa.show()
f = open('2.txt', 'wb')
pickle.dump(aa, f)
f.close()
# del Person        # 注意这行被注释了
f = open('2.txt', 'rb')
bb = pickle.load(f)
f.close()
bb.show()

运行结果:

この記事は、Python の pickle モジュールを理解するのに役立ちます

del Person のコメントを解除すると、コード定義内の Person クラスが削除されます。とすると、後続の load() メソッドでエラーが発生します。

この記事は、Python の pickle モジュールを理解するのに役立ちます


#5. 概要

この記事では主に Python について紹介します。 pickle モジュールでは、モジュール内の主なメソッドが詳しく紹介されています。

以上がこの記事は、Python の pickle モジュールを理解するのに役立ちますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はGo语言进阶学习で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。