Pythonのglobモジュールは、特定のパターンにマッチするファイルやディレクトリを取得するために使用されます。しかし、globを使用すると、ディレクトリとファイルの両方がリストアップされるため、ファイルのみを取得する方法を見ていきましょう。
ファイルのみをリストアップする
Python 3.6以降では、globに再帰オプション**を使用できます。ただし、globはすべてのファイルとディレクトリをリストアップするため、os.path.isfile()を使用してファイルのみを保持することができます。
import glob
from os.path import isfile, join
in_path = "/path/to/your/files"
files = glob.glob(join(in_path, "**/*"), recursive=True)
files = [f for f in files if isfile(f)]
ファイル名のみを取得する
glob.glob()で取得したパスからファイル名のみを抽出するには、os.path.basename()メソッドを使用できます。
import glob
import os
filedir = '/path/to/files'
files = glob.glob(filedir+'/*.txt')
filenames = [os.path.basename(file) for file in files]
print(filenames)
このコードは、フルパスなしのファイル名のリストを出力します。
以上がPythonのglobモジュールを使用して、特定のパターンにマッチするファイルのみをリストアップする方法です。これらのテクニックを使用することで、Pythonでのファイル操作がより柔軟になります。