pythonの小技 フォルダ内のファイルを順番に読み込んで処理する方法

データサイエンス

pythonでよく使うけど、忘れてしまいがちな処理を紹介します。今回は、フォルダ内のファイルをひとつづつ読み込む方法です。

はじめに

pythonで指定フォルダのファイルを読み込む手順はこんな感じです。

  • フォルダ内のファイルのリストを作成する
  • for分でリストから、パスを一つずつ取り出す
  • パスを使ってファイルを読み込む

それでは、具体例で説明していきましょう。

フォルダ内の画像をファイルを読み込む

import os
import glob
from PIL import Image

dir_path = "./your_data_path/"
file_list = glob.glob(os.path.join(dir_path, "*.jpg"))
for img_path in file_list:
    img = Image.open(img_path)
  # ここに画像処理など書きましょう。。。
  • 1~2行目:osとglobというライブラリを読み込んでおきます。ファイル操作用です。
  • 3行目:PillowのImageを読み込んでおきます。画像処理ライブラリです。
  • 5行目:読み込みたいファイルがあるフォルダパスです
  • 6行目:指定したフォルダ内の、指定した拡張子のファイルパスリストを作成します。glob.globでファイルパスリストの作成。os.path.joinはパスの結合。”*.jpg”でjpegファイルすべて検索できます。
  • 7行目:ファイルリストから一つずつファイルパスを取り出します
  • 8行目:画像ファイルを読み込みます。

フォルダ内のcsvファイルを読み込む(pandas)

import os
import glob
import pandas as pd

dir_path = "./your_data_path/"
file_list = glob.glob(os.path.join(dir_path, "*.csv"))
for file_path in file_list:
    file = pd.read_csv(file_path)
    # ここにファイルに行う処理をかいてください!

今度は、csvファイルです。pandasで読み込みましょう。

  • 1~2行目:osとglobというライブラリを読み込んでおきます。ファイル操作用です。
  • 3行目:pandasを読み込んでおきます。データセットを操作するライブラリです。
  • 5行目:読み込みたいファイルがあるフォルダパスです
  • 6行目:指定したフォルダ内の、指定した拡張子のファイルパスリストを作成します。glob.globでファイルパスリストの作成。os.path.joinはパスの結合。”*.csv”でcsvファイルすべて検索できます。
  • 7行目:ファイルリストから一つづつファイルパスを取り出します
  • 8行目:pandasでファイルを読み込みます。

フォルダ内のcsvファイルを読み込む(csv)

import os
import glob
import csv

dir_path = "./your_data_path/"
file_list = glob.glob(os.path.join(dir_path, "*.csv"))
for file_path in file_list:
    with open(file_path, "r") as f:
        reader = csv.reader(f)
        for row in reader:
            # ここに1行ずつに行う処理を書いてください

csvファイルを1行ずつ読み込んで処理するなら、csvというライブラリを使いましょう。

  • 1~2行目:osとglobというライブラリを読み込んでおきます。ファイル操作用です。
  • 3行目:csvというライブラリを読み込んでおきます。csvファイルを読み書きするライブラリです。
  • 5行目:読み込みたいファイルがあるフォルダパスです
  • 6行目:指定したフォルダ内の、指定した拡張子のファイルパスリストを作成します。glob.globでファイルパスリストの作成。os.path.joinはパスの結合。”*.csv”でcsvファイルすべて検索できます。
  • 7行目:ファイルリストから一つづつファイルパスを取り出します
  • 8行目:openでファイルを開きます。ここは、おまじないだと思って覚えてましょう。”r”は読み込みモードです。
  • 9行目:csvで読み込むオブジェクトを作成します。(f)を忘れずに。。。
  • 10行目:csvファイルの中身を1行ずつ読んでいきます。このforループの中に、1行ずつ行う処理を書きましょう。

まとめ

今回は、たまーに使うけど忘れてしまう、フォルダ内のファイルを順番に読み込む処理を紹介しました。

忘れたら時に、ここを見て思い出してもらえれば幸いです。

pythonの書籍はこちらがおすすめです。私もこの3冊は所有しています。↓↓↓こちらは初心者向け

これは中級者向けです。マルチスレッドが学べるのいいです。

タイトルとURLをコピーしました