Python

【Python】フルパスに含まれるディレクトリ名を取得したい

teratailで以前質問させて頂き解決した内容ですが、「フルパスに含まれるフォルダ名を取得」は個人的によく使う内容だったためブログにも残したいと思います。

python3.4以降だとpathlibが使えるのでわかりやすく取得出来るのですが、仕事の環境によってはmayapy(python2.7)しか使えないこともあると思うのでどちらのやり方も書きました。

python3.4以降の場合

pathlibモジュールを使います。\(バックスラッシュ)で分けてくれるので便利です。

import pathlib

jpg_path = pathlib.Path(r'D:\python\photo\cloud\jpg\test.jpg')

print(jpg_path.parts)
# ('D:\\', 'python', 'photo', 'cloud', 'jpg', 'test.jpg')

"""cloudを取得したい場合"""
print(jpg_path.parts[-3])

"""photoを取得したい場合"""
print(jpg_path.parts[-4])

python2.7の場合

mayaはまだpython2.7でpathlibモジュールは使えないため、別の方法です。
python2.7は力技感がありますね。

# -*- coding: utf-8 -*-
import os

jpg_path = r'D:\python\photo\cloud\jpg\test.jpg'

"""cloudを取得したい場合"""
dirname1 = os.path.dirname(jpg_path)
dirname2 = os.path.dirname(dirname1)
result1 = os.path.basename(dirname2)
print result1

"""
photoを取得したい場合
os.path.dirnameで掘り下げる
"""
dirname3 = os.path.dirname(dirname2)
result2 = os.path.basename(dirname3)
print result2