正規表現を使用してPythonで特定の拡張子を持つファイルを検索してみます。
今回はPythonの標準ライブラリであるreモジュールと、osモジュールを使います。
■Python
今回のPythonのバージョンは、「3.8.2」を使用しています。(Windows10)
■正規表現を使用して特定の拡張子を持つファイルを検索する
では、早速正規表現を使用して特定の拡張子を持つファイルを検索するスクリプトを書いていきます。
■コード
import re import os filenames = os.listdir('.') for file in filenames: match = re.search("\.py$", file) if match: print(".pyで終わるファイルは次のとおりです:", file)
インポートでreモジュール、osモジュールを呼び出して、filenamesという変数を作成し、その中に、os.listdir()を記述し、ディレクトリの一覧を取得します。今回は、カレントディレクトリ(作業ディレクトリ)を指定するために、括弧内には「.」を記述します。
次にmatchという変数を作成し、その中にre.search()を記述し、文字列を検索します。括弧内の第1の引数には、拡張子を指定します。今回は「.py」という拡張子を指定しますので、「\(円マーク)」と記述し、直後のメタ文字の特別な意味を打ち消します。最後には「$(ドル記号)」を記述し、.pyという拡張子のパターンの行末を表します。第2の引数で、検索した結果をfileという変数に収納します。
最後にfor文によるループ処理で、os.listdir()で取得したカレントディレクトリ(作業ディレクトリ)の情報内にある「.py」という特定の拡張子が付いたファイルを検索し、マッチするものだけをprint関数で出力します。
■実行
今回書いたスクリプトを、「file-search.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、カレントディレクトリ(作業ディレクトリ)内にある「.py」という特定の拡張子が付いたファイルを全て出力させることができました。
コメント