Pythonでファイルの一覧からディレクトリ名・ファイル名を取得するサンプルコード

コンピュータ

ディレクトリ内のファイルの一括処理を想定したサンプルコードを書きました。

実行環境はWindows10です。

ファイルの一覧はglob.glob("検索パス")で取得出来ます。検索パスにはワイルドカードで特定のファイル名を絞り込み条件を設定することが出来ます。サンプルではファイル名が「n」から始まり、拡張子が「.exe」のファイルのみ抽出されます。

取得されたファイルのパスはフルパスが返り、一括処理ではファイルの読み込みに使うことに成ります。ファイルを加工し別ファイルとして書き出す場合、パスからファイル名を抽出して使いたい場合があります。また、拡張子を変更することも想定すると、拡張子を除いたファイル名が必要となります。サンプルでは、os.path.basename(filepath)でファイル名を取得し、name, ext = os.path.splitext(filename)でファイル名と拡張子を分離しています。
また、dirname = os.path.dirname(filepath)でパスに含まれるディレクトリ名を取得しています。

・スクリプト

import glob
import os

# 対象ディレクトリ
path = r"C:\Windows\System32"

# 拡張子指定(例: .exe)
pattern = os.path.join(path, "n*.exe")

print("*.exe ファイル一覧:")

for filepath in glob.glob(pattern):
    dirname = os.path.dirname(filepath)
    filename = os.path.basename(filepath)
    name, ext = os.path.splitext(filename)
    print(f"フルパス : {filepath}")
    print(f"ディレクトリ名 : {dirname}")
    print(f"  ファイル名: {filename}")
    print(f"  ファイル名(拡張子除く): {name}")
    print(f"  拡張子: {ext}")
    print()

・実行結果

フルパス : C:\Windows\System32\notepad.exe
ディレクトリ名 : C:\Windows\System32
  ファイル名: notepad.exe
  ファイル名(拡張子除く): notepad
  拡張子: .exe

フルパス : C:\Windows\System32\nslookup.exe
ディレクトリ名 : C:\Windows\System32
  ファイル名: nslookup.exe
  ファイル名(拡張子除く): nslookup
  拡張子: .exe
~省略~

コメント