職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

条件に一致するファイルやディレクトリの一覧を取得する(pathlibモジュール)

2021年03月17日 | Python
条件に一致するファイルやディレクトリの一覧を取得する(pathlibモジュール)

【開発環境】
OS:Win10(64ビット)
言語:Python3.8.5(64bit)
Python の統合開発環境:IDLE
IDLEの操作は別サイト参照のこと

【条件に一致するファイルやディレクトリを取得する】
指定した条件に一致するファイルやディレクトリの一覧を取得するには pathlib モジュールで用意されている Path.glob メソッドを使う。→os モジュールではos.listdirメソッド

・書式
Path.glob(pattern)

特殊文字のパターン
* 0文字以上の任意の文字
? 1文字の任意の文字
[abc] 括弧の中のいずれかの文字


【*:0文字以上の任意の文字】
* は 0 文字以上の任意の文字とマッチする。

・対話コード
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import pathlib
>>> p = pathlib.Path('D:/Data')
>>> for name in p.glob('*.txt'):
print(name)


D:\Data\0314.txt
D:\Data\book.txt
D:\Data\cup.txt
D:\Data\test1.txt
>>>
※for 文の書式
for 変数 in イテラブルオブジェクト:
実行する文


【?:1文字の任意の文字】
? は 1 文字以上の任意の文字とマッチします。
例文
3 文字の任意の文字で始まり .txt で終わるファイルおよびディレクトリの一覧を取得してみる。
・対話コード
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import pathlib
>>> p = pathlib.Path('D:/Data')
>>> for name in p.glob('???.txt'):
print(name)


D:\Data\cup.txt
>>>

【[abc]:括弧の中のいずれかの文字】
[] は括弧の中に記述した文字のいずれか 1 文字とマッチします。

・例文
最初に a から e までの文字で始まり任意の文字が続いたあと .txt で終わるファイルおよびディレクトリの一覧を取得し、次に c から z までの文字で始まり任意の文字が続いたあと .txt で終わるファイルおよびディレクトリの一覧を取得します
・対話コード
>>> import pathlib
>>> p = pathlib.Path('D:/Data')
>>> for name in p.glob('[a-e]*.txt'):
print(name)


D:\Data\book.txt
D:\Data\cup.txt
>>>
【サブディレクトリの含めてマッチするファイルやディレクトリを取得する】
>>> import pathlib
>>> p = pathlib.Path('D:/Data')
>>> for name in p.glob('**/*.txt'):
print(name)


D:\Data\0314.txt
D:\Data\book.txt
D:\Data\cup.txt
D:\Data\test1.txt
>>>

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする