Home » Python » Pythonでファイル名を検索して一覧を出力する-glob.iglob()関数

Pythonでファイル名を検索して一覧を出力する-glob.iglob()関数

動作検証バージョン: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)

ファイル名を検索してパスの一覧を出力する処理の内容

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

[スポンサードリンク]

Home » Python » Pythonでファイル名を検索して一覧を出力する-glob.iglob()関数

「Python」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.