動作検証バージョン:Windows 10 + Python 3.7.3
名前に特定の文字列を含むファイルを探す必要があったので、簡単なスクリプトをPythonで作ってみました。
[スポンサードリンク]
ファイル名を検索してパスの一覧を出力するサンプル
以下のスクリプトを実行すると、Cドライブtempフォルダー以下で、名前に「foo」を含んでいるファイルのフルパス一覧が出力されます。
import glob
for path in glob.iglob(r'C:\temp\**\*foo*', recursive=True):
print(path)
for path in glob.iglob(r'C:\temp\**\*foo*', recursive=True):
print(path)
ファイル名を検索してパスの一覧を出力する処理の内容
glob.iglob()関数で、指定したパターンに一致したファイルのパスを、ジェネレータ型で取得できます。>>> type(glob.iglob(r'C:\temp\**\foo*', recursive=True))
<class 'generator'>
ポイントは、第1引数の途中に登場する「**」と、recursive引数です。
glob.iglob(r'C:\temp\**\*foo*', recursive=True)
この指定でCドライブtempフォルダー下の全フォルダーを探してくれます。
自分で再帰(recursive)処理を書かなくてもいいのは、とても嬉しく感じます。
上記のスクリプトは、目視確認用にfor文で出力するためにiglob()関数を使っていますが、リストとして取得したいのならば、glob()関数を使って、
glob.glob(r'C:\temp\**\*foo*', recursive=True)
とすればOKです。
>>> type(glob.glob(r'C:\temp\**\foo*', recursive=True))
<class 'list'>
最終更新日時:2019-11-12 10:20
[スポンサードリンク]