この記事は何?
pythonでパス名を文字列操作するときはos.path以下の関数を用います. 提供されている関数がいくつかあり頭に入っていなかったので,実際に動かしてみたときのメモです.
ソースコード
import os test_path = "hoge/piyo/fuga.ext" print(test_path) print("os.path.basename:", os.path.basename(test_path)) print("os.path.dirname:", os.path.dirname(test_path)) print("os.path.split:", os.path.split(test_path)) print("os.path.splitext:", os.path.splitext(test_path))
実行結果
hoge/piyo/fuga.ext os.path.basename: fuga.ext os.path.dirname: hoge/piyo os.path.split: ('hoge/piyo', 'fuga.ext') os.path.splitext: ('hoge/piyo/fuga', '.ext')
split関数はタプルを返しますが,1つ目の要素がdirname,2つ目の要素がbasenameに対応します. splitext関数は拡張子で分割します.
例えばパス名のbasenameから拡張子を取り除いたものが欲しいときは
os.path.splitext(os.path.basename(test_path))[0]
と呼べばいいんですね,多少冗長感もありますが….
その他
split関数は名前だけだとどこで分割するのか分かりにくくてつらい.