かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Python3 ファイルの絶対パスを取得したい。

os を使う

import os
currnet_dir = os.path.dirname( os.path.abspath(__file__) )

os.path.abspath(__file__) で現在のファイルの絶対パスを取得し、os.path.dirname(path)でファイルのあるディレクトリを取得。
参照: 10.1. os.path — 共通のパス名操作 — Python 2.7.14 ドキュメント

pathlib を使う

Python 3.4 以上

import pathlib
currnet_dir = pathlib.Path(__file__).resolve().parent

pathlib.Path(__file__)で現在のファイルのパスを取得し、resolve()絶対パス化した後に、.parentで親であるディレクトリを取得。という感じでしょうか。
参照: 11.1. pathlib — オブジェクト指向のファイルシステムパス — Python 3.6.5 ドキュメント

ぐぐる検索するとos.pathを使用した例が多く出てきたのですが、Python3.4以上なら新しく追加されたpathlibを使ったほうが良いのかな?と思いました。


[参考]