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を使ってサブディレクトリを除外する方法です。これらのテクニックを使えば、より柔軟にファイル検索を行うことができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です