pathlibを使うとglobもopenも使わずにテキスト処理ができる[Python]

7月 26, 2020

これまで特定のフォルダ内にあるテキストファイルを処理するときは、以下のようにglobをインポートして、ファイルパスのリストを作成した後に、with openでテキストを読み込むということをしていた。

from glob import glob
src = "./input_txt/*.txt"
for txt in glob(src):
with open(txt, "r") as f:
f.read()

パス指定の時にアスタリスクが入ったり、with openによる無駄なfが発生したり、無駄なインシデントが発生したりし、コードが汚い。

一方、pathlibをインポートすると、以下のようにコードがすっきりする。

from pathlib import Path
src = "./input_txt/"
for txt in Path(src).glob("*.txt"):
t = txt.open("r").read()

ちなみに、pathlibのglobで読み込むと、ファイルリストがリストではなく、イテレーターで返ってくるのでメモリのパンクが防止できる。この点もGood.

Python

Posted by vastee