os.path.joinでリストを連結する


このエントリーをはてなブックマークに追加

Pythonのos.path.joinを使うと、実行環境に応じた適切なセパレータによってパスを連結できます。

import os
os.path.join("path", "to", "somewhere") # 'path/to/somewhere'が返る(linuxの場合)

join()の引数にリストを与えるのはよくある間違いです。以下のように期待通りの動作をしません。

paths = ["path", "to", "somewhere"]
os.path.join(paths)  # 失敗! ['path', 'to', 'somewhere'] が返る

正しくは、*(アスタリスク)を使って、リストを引数列に変換します。

paths = ["path", "to", "somewhere"]
os.path.join(*paths)  # 成功! 'path/to/somewhere'が返る

参考