なんだかGoodVibes

日々の勉強メモです。

【Python】パスの一覧を取得する(glob)

こんにちは。
本日はPythonメモです。

概要

globモジュールを使用してパスの一覧を取得します。
globモジュールは指定されたパターンに一致する
すべてのパス名を取得してくれます。

フォルダの構成は以下とします。

─ tmp1
├── 1.txt
├── 123.txt
├── aaa.txt
├── bbb.txt
└── tmp2
    ├── 2.txt
    ├── ccc.txt
    └── ddd.txt


指定したパス一覧を取得

import glob

files = glob.glob('./tmp1/*.txt')
print(files)

実行結果は以下です。

['./tmp1/bbb.txt', './tmp1/aaa.txt', './tmp1/1.txt', './tmp1/123.txt']

tmp1配下のファイルのパス一覧が取得できました。


少し条件を変えて取得してみます。
次は、数値1文字のファイル名のパスを取得します。

import glob

files = glob.glob('./tmp1/[0-9].txt')
print(files)

実行結果は以下です。

['./tmp1/1.txt']


指定したパス一覧を取得(再帰的に取得)

import glob

files = glob.glob('./tmp1/**/*.txt', recursive=True)
print(files)

実行結果は以下です。

['./tmp1/bbb.txt', './tmp1/aaa.txt', './tmp1/1.txt', './tmp1/123.txt', './tmp1/tmp2/2.txt', './tmp1/tmp2/ddd.txt', './tmp1/tmp2/ccc.txt']

先程と違って、今回はtmp2配下のファイルパスも取得できました。
これは、globの引数でrecursive=Trueを指定しているためです。


先程と同様に、数値1文字のファイル名のパスを取得します。

import glob

files = glob.glob('./tmp1/**/[0-9].txt', recursive=True)
print(files)

実行結果は以下です。

['./tmp1/1.txt', './tmp1/tmp2/2.txt']



以上です。