Pythonでディレクトリ走査

Pythonでディレクトリ走査

相変わらず、ログファイルを集計している。
特定のディレクトリのファイルをすべて検査するのだが、今まではosモジュールを利用していた。

os.listdir

1
2
3
4
5
6
7
import os

top_dir = '/logs'
for f in os.listdir(top_dir):
    path = os.path.join(top_dir, f)
    if os.path.isfile(path):
        print(path)

今までは、この方法を実行していた。
しかしこの方法は、os.listdirの戻り値がファイル名のみなので、そのファイルにアクセスしようと思うと、top_dirとos.path.join()しなくてはならない。
Python3.4からはpathlib.Pathが利用できる。

pathlib.Path

1
2
3
4
5
6
from pathlib import Path

top_dir = '/logs'
for f in Path(top_dir).iterdir():
    if f.is_file():
        print(f)

iterdirの戻り値はPathなので、そのメソッドを利用しファイルかどうかを確認し、Pathなので__str__でフルパスを取得できるし、nameではファイル名のみの取得もできる。suffixで拡張子のみの取得もできる。とても便利。

まとめ

これからはPathを率先して利用しよう。

同じタグの記事
同じカテゴリの記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA