pickle
ピクル(標準ライブラリ)
意味 Pythonオブジェクト保存
pickleとは?
pickleモジュールは、Pythonのオブジェクトをファイルに保存したり、ファイルから読み込んだりする機能を提供します。
pickleの具体的な使い方
pickle保存と読込例
import pickle
# 保存するデータの準備
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
return f"こんにちは、{self.name}です。{self.age}歳です。"
people = [
Person("山田太郎", 30),
Person("鈴木花子", 25)
]
# pickleを使用してデータを保存
with open('people.pickle', 'wb') as file:
pickle.dump(people, file)
print("データをpickleファイルに保存しました。")
# pickleファイルからデータを読み込む
with open('people.pickle', 'rb') as file:
loaded_people = pickle.load(file)
print("\npickleファイルからデータを読み込みました。")
# 読み込んだデータを使用
for person in loaded_people:
print(person.greet())
# オブジェクトの同一性を確認
print(f"\n元のオブジェクトと読み込んだオブジェクトは同じですか? {people[0] is loaded_people[0]}")
print(f"しかし、属性は同じです: {people[0].__dict__ == loaded_people[0].__dict__}")
👇出力結果
データをpickleファイルに保存しました。
pickleファイルからデータを読み込みました。
こんにちは、山田太郎です。30歳です。
こんにちは、鈴木花子です。25歳です。
元のオブジェクトと読み込んだオブジェクトは同じですか? False
しかし、属性は同じです: True
この例では、pickleモジュールを使用してPythonオブジェクト(カスタムクラスのインスタンスを含むリスト)をファイルに保存し、その後読み込む方法を示しています。 1. カスタムクラス`Person`を定義し、そのインスタンスのリストを作成します。 2. `pickle.dump()`を使用して、オブジェクトをファイルに保存します。 3. `pickle.load()`を使用して、ファイルからオブジェクトを読み込みます。 4. 読み込んだオブジェクトのメソッドを呼び出して、正しく復元されていることを確認します。 5. 元のオブジェクトと読み込んだオブジェクトの同一性と等価性を比較します。 この例を通じて、pickleがPythonオブジェクトの構造や機能を保持したまま保存・読み込みできることがわかります。
pickleに関するよくある質問
pickleが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Pythonのpickleやmultiprocessing.Process、timeit、pdb、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
Pythonを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!Pythonはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!