Python

【Python】フォルダ内のファイル名を取得し一覧に(すべて:階層:フォルダやサブフォルダも:ディレクトリ:osやglobなど)

当サイトでは記事内に広告を含みます

この記事では、Pythonでフォルダ内のファイル名を取得し、一覧としてCSVファイルに出力する方法について解説していきます。

ポイントとしては

os.walk()関数

glob.glob()関数

など使用することです。

pythonなどのプログラミングでは初〜中級者の段階では考えるよりも、見て覚えて慣れてしまうのがおすすめなので、ぜひ本記事をご活用くださいませ。

それでは詳しく確認していきます。

Pythonでフォルダ内のファイル名を取得し一覧csvにする方法(ファイルだけ)【glob.glob, pandas】

それではまず、Pythonでフォルダ内のファイル名を取得し、一覧としてCSVファイルに出力する方法(ファイルだけ)について解説していきます。

この方法では`glob.glob()`関数と`pandas`ライブラリを使用します。

import glob
import pandas as pd

# フォルダのパスを指定
foruda_pasu = 'C://sample55//'  

# ファイル名を取得
fairu_mei_risuto = glob.glob(foruda_pasu + '*')

# ファイル名をデータフレームに変換
df = pd.DataFrame({'fairu_mei': fairu_mei_risuto})

# ファイル名をCSVファイルに出力
df.to_csv('C://sample55/kekka//fairu_mei_risuto_pandas.csv', encoding="cp932",index=False)

print("Kanryo!")  # 完了メッセージを表示

 

元フォルダのファイルの状態。

さらに下のkekkaフォルダ内の出力されるcsv内のリスト一覧結果。

中身チェックで、うまくすべてのファイルを出力できているのがわかりますね。

実行画面のスクショも載せておきます。

 

コードの意味詳細

このコードでは以下の処理を行っています。

1. `glob`モジュールと`pandas`ライブラリをインポートします。

2. `foruda_pasu`変数にフォルダのパスを指定します。ここでは'C://sample55//' (C直下のsample55フォルダ)を指定しています。

3. `glob.glob()`関数を使用して、指定したフォルダ内のファイル名を取得し、`fairu_mei_risuto`変数に格納します。

4. `pd.DataFrame()`を使用して、`fairu_mei_risuto`をデータフレームに変換します。

5. `to_csv()`メソッドを使用して、データフレームをCSVファイル(`fairu_mei_risuto_pandas.csv`)に出力します。なお文字化けしないように日本語など含む場合は、shift_jisやcp932を指定。

6. 完了メッセージ「Kanryo!」を表示します。

 

 

 

Pythonでフォルダ内のサブフォルダも含めてファイル名を取得し一覧csvにする方法(すべての階層で)【os.walk, pandas】

続いては、Pythonでフォルダ内のサブフォルダも含めてファイル名を取得し、一覧としてCSVファイルに出力する方法(すべての階層で)について解説していきます。

この方法では`os.walk()`関数と`pandas`ライブラリを使用します。

import os
import pandas as pd

# フォルダのパスを指定
foruda_pasu = 'C://sample55//'  

# ファイル名を取得
fairu_mei_risuto = []
for root, dirs, files in os.walk(foruda_pasu):
    for file in files:
        fairu_mei_risuto.append(os.path.join(root, file))

# ファイル名をデータフレームに変換
df = pd.DataFrame({'fairu_mei': fairu_mei_risuto})

# ファイル名をCSVファイルに出力
df.to_csv('C://samplekekka//fairu_mei_risuto_subfolders_pandas.csv', encoding="cp932",index=False)

print("Kanryo!")  # 完了メッセージを表示

 

うまくsample//kekkaフォルダといったサブフォルダ内のファイル名も一覧に追加されています(^^)/

 

コードの意味詳細

このコードでは以下の処理を行っています。

基本的には上で記載のコードとほぼ同じですね。下で強調の部分のみがサブフォルダで変更点です!

 

1. `os`モジュールと`pandas`ライブラリをインポートします。

2. `foruda_pasu`変数にフォルダのパスを指定します。ここでは'C://sample55//'を指定しています。

3. `os.walk()`関数を使用して、指定したフォルダとそのサブフォルダ内のファイル名を取得します。

 `for`ループを使用して、各フォルダ(`root`)とそのサブフォルダ(`dirs`)、ファイル(`files`)を処理します。

各ファイル名に対して、フォルダのパスとファイル名を結合し、`fairu_mei_risuto`リストに追加します。

4. `pd.DataFrame()`を使用して、`fairu_mei_risuto`をデータフレームに変換します。

5. `to_csv()`メソッドを使用して、データフレームをCSVファイル(`fairu_mei_risuto_subfolders_pandas.csv`)に出力します。

6. 完了メッセージ「Kanryo!」を表示します。

 

まとめ