本日のお題
本日のお題はpythonのos.path.joinです。
このコードは、パスを繋げて新しいパスを生成する役割を持っています。
djangoを学習していたところcssファイルの読み込み経路の設定でこのos.path.joinの知識が出てきたので、備忘録として残しておきます。
目次
- os.path.joinの文型
- 注意点1〜リスト型のパスの結合
- 注意点2〜/を含むパスについて
os.path.joinの文型
os.path.joinの基本構文及び具体的な使用例は以下の通りです。
また、osモジュールはimportが必要です。
# import
import os
# 基本構文
os.path.join("パス1", "パス2")
# 具体例
path = os.path.join( ("main", "project1/test1")
以下の例では、pathという変数に"main/project1/test1というパスが代入されています。
第一引数の下流に第二引数が連結されることに注意してください。
注意点1〜リスト型のパスの結合
リスト型のパスを結合する場合には、以下のように記述します。
list = ["main", "project1", "test1"]
path = os.path.join(*list)
注意点2〜/を含むパスについて
os.path.joinには、"/main"などの先頭に/を含むパスをルートパスとして解釈してしまう、という性質があります。
これはなんとなく分かりますね。
ターミナルでのパス表記もルートディレクトリは/で表されているので。
/で始まるパスを結合した場合の具体例は以下になります。
path = os.path.join("/main", "/project1", "/test1")
print(path) #結果:"/test1"
このような場合はreplaceメソッドを用いて/を取り除いてあげることで、意図した通りのパスを取得できるようになります。
list = ["/main", "/project", "/test"]
list = [dir.replace("/", "") for dir in list] # for inを用いて要素の/を全て削除
path = os.path.join(*list)
終わりに
以上がos.path.joinの使い方になります。
次回はこれを用いてcssファイル・画像ファイルの配置を指定していきます。