まだPythonでパス指定する時にosライブラリを使って疲弊してるの?

Facebook にシェア
Pocket
LINEで送る
このエントリーを Google ブックマーク に追加

まだ割と新しいソースを観ると、凄い長いパスの指定の仕方をしているのを見かけるので。

疲弊する書き方

ソースがあるディレクトリ、親ディレクトリ、ファイルパスを指定する場合の昔ながらの書き方は次の通り。

# coding: utf-8
import os

# ソースがあるディレクトリ
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
# 親ディレクトリ
PARENT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

いーーーってなる。もしくは次のようにも書けるが。

# coding: utf-8
from os.path import dirname, absname, join

# ソースがあるディレクトリ
PROJECT_DIR = dirname(absname(__file__))
# 親ディレクトリ
PARENT_DIR = dirname(dirname(abspath(__file__)))
# ファイルパス
FILE_PATH = join(dirname(dirname(abspath(__file__))), 'ファイル名')

absnameはともかく、dirnameとjoinはなんか名前汚している感が半端なくて嫌。

pathlibを使おう

もう、pathlib使お?凄い楽だし。

# coding: utf-8
from pathlib import Path

# ソースがあるディレクトリ
PROJECT_DIR = Path().cwd()
# 親ディレクトリ
PARENT_DIR = Path().cwd().parent
# ファイルパス
FILE_PATH = Path().cwd().parent / 'ファイル名'

……すごくない?上2つは当然凄いけど、ファイルパスを / 演算子に割り当てたの、天才すぎない?考えた人、ホント天才。

というわけで疲弊しないために、pathlibを使おう!

Related posts

コメントを残す