ディレクトリ内のファイルの一括処理を想定したサンプルコードを書きました。
実行環境は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
~省略~
コメント