.net column
.NET開発者のためのブログメディア

Pythonでのpickleの使い方とは?基本的な使い方からプロトコルを指定する方法まで紹介!

2021年04月12日

SE
Pythonでのpickleの使い方のメリットについて、教えてください。

PM
まず、pickleの使い方について説明していきましょう。

Pythonでのpickleの使い方とは?


今回は、Pythonでのpickleの使い方について説明します。pickleを使うと、データを直列化して保存できます。また保存したデータを読み出すこともできます。

Pythonでのpickleの使い方に興味のある方はぜひご覧ください。

基本的な使い方

Pythonでのpickleの基本的な使い方を紹介します。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

sample.pickleというファイルを介して、オブジェクトにアクセスできていることが分かります。このようにPythonでは、pickleでオブジェクトを直列化できます。

複数オブジェクト

Pythonでのpickleで、複数オブジェクトを直列化する方法を紹介します。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

クラスインスタンス

Pythonでクラスインスタンスを直列化する方法を紹介します。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

このようにPythonでは、クラスインスタンスを直列化できます。

ファイルを介さない

Pythonでファイルを介さない直列化について紹介します。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

ファイルを介さずにオブジェクトの読み書きができていることが分かります。

プロトコル指定

Pythonの直列化において、プロトコルを指定する方法を紹介します。

実際のソースコードを見てみましょう。

例えば、python3でpickleで保存して、python2で読みだす場合、実行結果は以下のようになります。

プロトコル不一致のため、実行時エラーになります。

ここでのバージョン情報は以下です。

このエラーを発生させずに読み込むには、保存時にプロトコルを指定します。

実行結果は以下のようになります。

プロトコルを合わせれば、保存したデータを読み出せています。

SE
オブジェクトの状態を保存・復元するためのライブラリということですね。

PM
そうです。pickleでは、データの直列化・非直列化を行うことができます。

まとめ

いかがでしたでしょうか。Pythonでのpickleの使い方について説明しました。pickleを使うと、データを直列化して保存できます。また、保存したデータを読み出すことも可能です。

ぜひご自身でPythonのソースコードを書いて、理解を深めてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags