web-dev-qa-db-ja.com

Pythonパス全体のないグロブ-ファイル名のみ

ディレクトリでglobを使用して特定の拡張子を持つファイルを取得する方法はありますが、パス全体ではなくファイル名のみを取得できますか?

50
user825286

os.path.basename(path)を使用してファイル名を取得します。

78
Tom Zych

これは誰かを助けるかもしれません:

names = [os.path.basename(x) for x in glob.glob('/your_path')]

70

os.path.basenameと組み合わせてglobを使用します。

11
orlp

relative globbing (特にzipファイルにアイテムを追加する必要がある場合)のソリューションを書き直します。これは通常、最終的には次のようになります。

# Function
def rel_glob(pattern, rel):
    """glob.glob but with relative path
    """
    for v in glob.glob(os.path.join(rel, pattern)):
        yield v[len(rel):].lstrip("/")

# Use
# For example, when you have files like: 'dir1/dir2/*.py'
for p in rel_glob("dir2/*.py", "dir1"):
    # do work
    pass
0
turtlemonvh