2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

pickleが超便利だった件

Last updated at Posted at 2024-11-09

ある.pyファイルにおいて、リストを作成した。そして、そのリストをその他の別の.pyファイルでも使用したい。こんな経験ありませんか?(僕は、クローリング・スクレイピングをしていてこのような状況を経験しました)
そんな時どうするか,,,,

pickleを使え!!!

pickleとは

Python でデータを保存したり読み込んだりするためのライブラリです。
簡単に言うと、「Python のデータ(リストや辞書、モデルなど)をファイルに保存して、後でまた使えるようにする」 ためのもの。

事前準備

import pickle

pickleファイルを保存

今、book_titles_listにいくつかの本名が格納されているとしましょう。

sample1.py
book_titles_list = ['嫌われる勇気', `限りある時間の使い方', `現代統計数理学の基礎']

そして、以下のコードを実行すると、book_titles_listが拡張子.pickleで自分のディレクトリ内に保存されます。

sample1.py
# リストをファイルに保存
with open('book_0titles_list.pkl', 'wb') as f:
    pickle.dump(book_titles_list, f)

そして、実際カレントディレクトリに↓
image.png
しっかりと保存されていることがわかると思います。

pickleファイルの読み込み

さて、読み込みです。↓でsample2.pyでもbookd_titeles_listを再利用できます!

sample2.py
# 保存されたリストを読み込む
with open('book_titles_list.pkl', 'rb') as f:
    book_titles_list = pickle.load(f)

※追記 with open()の構文について

with open(filename, mode) は、任意のファイルを開き、作業が終わったら自動的にファイルを閉じる仕組みを提供します。

modeの種類は、↓

mode 説明
'r' 読み取り専用。ファイルが存在しない場合はエラー。
'w' 書き込み専用。ファイルが存在しない場合は作成、存在する場合は上書き。
'a' 追記モード。既存ファイルの末尾にデータを書き込む。
  • 例1(mode='r')
example1_'r'
with open('example1.txt', 'r') as f:
    content = f.read()
    print(content)  # ファイルの内容を文字列として出力

ちなみに、バイナリデータ(.txt以外のファイル)を読み込むときは'b'をつけ足して'rb', 'wb'などとしましょう。

  • 例2(mode='wb')
example2_'wb'
data = b'Hello, binary world!'  # バイト列データ
with open('example2.bin', 'wb') as f:
    f.write(data)
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?