スポンサーリンク
ここでは、pythonにてフォルダ内のすべてのcsvをpickle形式に一括変換する方法【pkl:同じディレクトリ】について解説していきます。
csvライブラリ(標準ライブラリ)やpandasを使うだけでOKですね。
サンプルコードを見ていきましょう!
スポンサーリンク
目次
フォルダ内のすべてのcsvをpickle形式に一括変換する方法【csvライブラリ】
まずは標準ライブラリのcsvライブラリを用いてcsvをpklに一括変換します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import csv import glob import os import pickle # CSVファイルが存在するフォルダへのパス ここではC直下のsample5フォルダ csv_folder_path = 'C://sample5' # 出力するPickleファイルが存在するフォルダへのパス ここではC直下のsample6フォルダ output_folder_path = 'C://sample6' # 指定されたフォルダ内のすべてのCSVファイルを取得 csv_files = glob.glob(os.path.join(csv_folder_path, '*.csv')) # 各CSVファイルを読み込んで、Pickle形式のファイルに変換 for csv_file in csv_files: data = [] with open(csv_file, 'r', encoding='utf-8') as f: reader = csv.reader(f) for row in reader: data.append(row) # 出力ファイル名を生成 output_file_name = os.path.basename(csv_file).split('.')[0] + '.pkl' output_file_path = os.path.join(output_folder_path, output_file_name) # リストをPickle形式で保存 with open(output_file_path, 'wb') as f: pickle.dump(data, f) print("CSVファイルをすべてPickle形式に変換しました。") |
基本的には、標準的なforループ処理で順々にcsvをpklに変換していけばOKです。
拡張子を.csvから.pklに変換するためにも、一度splitしてファイル名を分割しています。
最後にCSVファイルをすべてPickle形式に変換しました。という完了メッセージもつけています。
基本を押さえておけばOKですね。
Pythonにて同じフォルダのすべてのpklファイルの指定列の合計を出す方法【pickle】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import glob import os import pickle # Pickleファイルが存在するフォルダへのパス pkl_folder_path = 'C://sample5' # 指定されたフォルダ内のすべてのPickleファイルを取得 pkl_files = sorted(glob.glob(os.path.join(pkl_folder_path, '*.pkl'))) # 各Pickleファイルを読み込み、renshuu列の合計値を計算して表示 for pkl_file in pkl_files: with open(pkl_file, 'rb') as f: data = pickle.load(f) # renshuu列が存在するインデックスを取得 # 最初の行(ヘッダー)からrenshuu列を探す renshuu_index = data[0].index('renshuu') # renshuu列の合計値を計算 renshuu_sum = sum(float(row[renshuu_index]) for row in data[1:]) # ヘッダーを除くため、data[1:]を使用 # ファイル名とrenshuu列の合計値を出力 print(f"{os.path.basename(pkl_file)}: renshuu sum = {renshuu_sum}") |
まとめ 一括でフォルダ内のすべてのcsvをpickle形式に一括変換する方法【csvライブラリなど】
ここでは、フォルダ内のすべてのcsvをpickle形式に一括変換する方法について解説しました。
pkl形式は処理が速いので、大量のデータを扱う際にはおすすめ!
ABOUT ME
スポンサーリンク
スポンサーリンク