概要
listを一時的にファイルに保存し、読み出したいことが良くある。
いつもちょっと考えるので、まとめておく。
2018/04/24追記
pickleを使うとよりスマートに保存できるので、pickleの使い方を最後に追記。
# 以下プログラムに誤りがあったため修正しました。
コメントにてご指摘いただき、ありがとうございました。
1行ずつlistを書き出し、読み込みを行う方法
一番素直なやり方。
Pythonを覚えたての方は、まずはこちらを試して、動作を見てみるといいかも。
listの書き出し
listを要素ごとに改行して書き出し。
f = open('list.txt', 'w') for x in list_row: f.write(str(x) + "\n") f.close()
listの読み出し
各行ごとに読みだして、listに戻す。
appendを使っているあたり、pythonらしくないコードのような気がするけど、とりあえずこれでも動く。
f = open("./list.txt","r") list_row = [] for x in f: list_row.append(x.rstrip("\n")) #以下のようにしてしまうと、改行コードがlistに入ってしまうため注意 #list_row.append(x) f.close()
pickleを使用する方法(おすすめ!)
pickleを使った保存
pickleでリストをdumpするだけ、シンプル!!
import pickle f = open('list.txt', 'wb') list_row = [リストを定義] pickle.dump(list_row, f)
pickleを使った読み出し
こちらもpickleのライブラリを使ってloadするだけ。
f = open("./list.txt","rb") list_row = pickle.load(f)
さらに応用、圧縮して保存!
ファイルサイズが大きいリストを保存したい場合は、以下のように圧縮して保存する方法もある。
www.robotech-note.com