Pythonでパス名を結合する

Pythonでパス名を結合します。文字列として結合するとディレクトリ区切り文字を自分で入れないといけませんが、そのあたりを自動で処理してくれます。

os.path.joinメソッドで結合する

import os.path

ret = os.path.join(path, paths)
変数 内容
path str 結合するパス名の文字列。
paths str 結合するパス名の文字列。
ret str 結合後のパス名。

結合するパス名は2つだけでなく、複数指定できます。

>>> import os.path

>>> os.path.join('program files', 'python37')
'program files\\python37'

>>> os.path.join('program files', 'python37', 'python.exe')
'program files\\python37\\python.exe'

最後の文字列が空文字の場合は、ディレクトリ区切り文字を最後に付けてくれます。 空文字列が最後出ない場合は、無視されます。

>>> import os.path

>>> os.path.join('program files', 'python37', '')
'program files\\python37\\'

>>> os.path.join('','program files', 'python37', 'python.exe')
'program files\\python37\\python.exe'

Windows10の場合、ドライブレターも認識してくれます。 ドライブの相対アドレスなのか、ドライブのルートからのアドレスなのかは、意識して指定する必要があります。

>>> import os.path

>>> os.path.join('c:','program files', 'python37', 'python.exe')
'c:program files\\python37\\python.exe'

>>> os.path.join('c:\\','program files', 'python37', 'python.exe')
'c:\\program files\\python37\\python.exe'

絶対パスやドライブレターよりも先に(左側に)指定されたパス名は、無視されます。

>>> import os.path

>>> os.path.join('program files', '\python37')
'\\python37'

>>> os.path.join('program files', 'c:', 'python37')
'c:python37'

広告

Pythonのファイル処理カテゴリの投稿