Pythonでディレクトリ走査
相変わらず、ログファイルを集計している。
特定のディレクトリのファイルをすべて検査するのだが、今まではosモジュールを利用していた。
os.listdir
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
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を率先して利用しよう。
同じタグの記事
- BOM付きUTF-8からBOMを除去するpython
- jythonのヒープメモリ設定
- Kotlin1.2.50がリリースされていた
- macOSをHigh Sierraに更新した。スクリプト実行環境のバージョンは変わったのか
- macOSをMojaveに更新した。スクリプト実行環境のバージョンは変わったか
- pathlib.Pathを調べる
- pyenvでpython環境をインストール
- pyenvとvirtualenvでpython環境を構築
- python unpack
- python3で数値のlistを文字列のlistに変換
同じカテゴリの記事
コメントを残す