[Python]os.pathの使い方(ファイルパスの結合、ファイル名取得、フォルダ名取得)

2021年8月1日日曜日

Python

Pythonにおけるファイルパスの結合、ファイル名の取得、フォルダ名の取得などを紹介します。




ファイルパスの結合

os.path.joinで結合を行います。
便利な点と、仕様上の注意点を紹介します。
import os

path_1 = "/hoge/fuga/"
path_2 = "sample_1.txt"

# path_1, path_2を結合
marge_path_1 = os.path.join(path_1, path_2)
print(marge_path_1)
# /hoge/fuga/sample_1.txt

path_3 = "/hoge/fuga"
path_4 = "sample_1.txt"

# path_3, path_4を結合 セパレータを自動付与
marge_path_2 = os.path.join(path_3, path_4)
print(marge_path_2)
# /hoge/fuga/sample_1.txt

path_5 = "/hoge/fuga/"
path_6 = "/sample_1.txt"

# path5, path_6を結合 path_5が結合されない
marge_path_3 = os.path.join(path_5, path_6)
print(marge_path_3)
# /sample_1.txt


path_3, path_4の結合のようにpath_3側のセパレータの有無を気にせず結合できる点がos.path.joinの便利な点です。

一方で、path_5, path_6の結合のようにpath_6側の先頭にセパレータがついている場合path_5が結合されません。これはos.path.joinの仕様になります

os.path.joinの結合元の先頭にセパレータがついている場合パスが結合されない点には留意しておく必要があります。

ファイル名の取得

ディレクトリ構造とファイル名を含むパスからファイル名のみ取得します
本記事では、拡張子有り、拡張子無し両方のファイル名の取得方法を記載します

import os

path = "/hoge/fuga/sample.txt"

# ファイル名(拡張子有り)取得
filename_1 = os.path.basename( path )
print(filename_1)
# sample.txt

# ファイル名(拡張子無し)取得
filename_2 = os.path.splitext( os.path.basename(path) )[0]
print(filename_2)
# sample

拡張子無しのファイル名は、
拡張子ありのファイル名をos.path.splitextを使って .(ピリオド)で分割しています。

そして、"sample"と、".txt"に分割されたテキストの内"sample"を取得しています。

フォルダ(ディレクトリ)名の取得

次にフォルダ名の取得方法を紹介します

import os

path = "/hoge/fuga/sample.txt"

# フォルダ名取得
dirname = os.path.dirname(path)
print(dirname)
# /hoge/fuga

# ファイルを格納しているフォルダ名のみ取得
folodername = os.path.basename( os.path.dirname(path) )
print(folodername)
# fuga


AIエンジニア向けフリーランスならここがおすすめです

まずは無料会員登録

プロフィール

自分の写真
製造業に勤務する傍ら、日々AIの技術動向を調査しブログにアウトプットしています。 AIに関するご相談やお仕事のご依頼はブログのお問い合わせフォームか以下のアドレスまでお気軽にお問い合わせください。 bhupb13511@yahoo.co.jp

カテゴリ

このブログを検索

ブログ アーカイブ

TeDokology