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でのファイル操作がより柔軟になります。