なろう分析記録

『小説家になろう』をふくめ『ネット小説投稿サイト』を分析する。コード置き場,主にPython,javascript,たまに創作。

【Python】リスト型の変数をそのまま外部ファイルに書き込み/読み出しするサンプルコード

リストを外部ファイルに保存する

Pythonにおいて多用されるリスト型の変数を簡単に外部ファイルに書き込み/読み出しする方法をご紹介します。

f:id:karupoimou:20190715232752p:plain
joblib

joblibを使う方法

メリット

・リスト変数をそのまま保存できる。
Pythonで読み書きするだけの目的であればjoblib(またはpickle)を使うと良い。

デメリット

文字コードが変換されるので保存されたファイルを人の目で直接読むことは出ない。
・内容が大きくなりすぎると速度が低下し、ファイルサイズも大きくなりがちである。
Pythonの変数を一時書き出ししておく「joblib」と「pickle」を徹底的に比較する。 - なろう分析記録

サンプルコード

joblibで書き出し
import sys
sys.setrecursionlimit(10000)#エラー回避
import joblib
import random

#一時的に数値を保存する用
temp_list=[]

#乱数を一時リストに書き込み
for i in range(100):
    a = random.uniform(1, 10)#適当な乱数
    temp_list.append(a)#リストに追加

#書き出し処理
joblib.dump(temp_list, "temp.txt",compress=3)
joblibで読み込み
import sys
sys.setrecursionlimit(10000)#エラー回避
import joblib
import random

#一時的に数値を保存する用
temp_list=[]

#読み込み処理
temp_list = joblib.load( "temp.txt")

print(temp_list)

PandasでCSVに保存する方法

Pandasの様々な機能を使うことでPython内で作業しやくすくなるため、今回はPandasを介しての作例を紹介します。

メリット

CSVはエクセルをはじめ、他のプログラムでも読める。
・Pandasのデータフレームを使うことでmatplotlibやwordcloudなど様々なpythonプラグインとそのまま連携出来るようになる。

サンプルコード

CSVに書き込み
import pandas as pd

#一時的に数値を入れるリスト
temp_list=[]

#リスト
for i in range(100):
    a = random.uniform(1, 10)#適当な乱数
    temp_list.append(a)#リストに追加

#Pandasのデータフレームにリストを格納
df = pd.DataFrame(temp_list)

#書き出し
df.to_csv('temp.csv', mode='w')

print(df)
CSVを読み込み
import pandas as pd

#一時的に数値を入れるリスト
temp_list=[]

#読み込み処理
df = pd.read_csv('temp.csv')
temp_list = df

print(temp_list)

※今回のサンプルコードではヘッダー(dfのカラム名)を付けていないが、実際は付けたほうがよい。

参考ページ

note.nkmk.me

qiita.com