Pythonのglob
モジュールは、特定のパターンに一致するファイル名を見つけるための便利なツールです。しかし、時々、特定のサブディレクトリを除外したい場合があります。この記事では、その方法を説明します。
globとサブディレクトリ
glob
は、デフォルトではサブディレクトリを含むすべてのファイルを検索します。しかし、サブディレクトリ内のファイルを無視したい場合があります。そのためには、以下のようにos.path.isdir
を使ってディレクトリをフィルタリングすることができます。
import glob
import os
logs = [log for log in glob.glob('/var/opt/server/log/current/*') if not os.path.isdir(log)]
このコードは、/var/opt/server/log/current/
ディレクトリ内のすべてのファイルを検索し、その中からディレクトリを除外します。
globのrecursive引数
また、glob
関数のrecursive
引数をFalse
に設定することで、現在のディレクトリのみのファイルにマッチさせることもできます。
import glob
logs = glob.glob('/var/opt/server/log/current/*', recursive=False)
このコードは、/var/opt/server/log/current/
ディレクトリ内のファイルのみを検索し、サブディレクトリは無視します。
以上が、Pythonのglob
を使ってサブディレクトリを除外する方法です。これらのテクニックを使えば、より柔軟にファイル検索を行うことができます。