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冊は所有しています。↓↓↓こちらは初心者向け
リンク
リンク
これは中級者向けです。マルチスレッドが学べるのいいです。
リンク