web-dev-qa-db-ja.com

python)からファイルへの絶対パスを見つける

あるディレクトリにあるファイルtest.pyがある場合、それがどのディレクトリにあるかをtest.pyからどのように見つけることができますか? os.path.curdirは現在のディレクトリを提供しますが、ファイルが存在するディレクトリは提供しません。あるディレクトリfooからtest.pyを呼び出すと、os.curdirfooを返しますが、test.pyのパスは返しません。

ありがとう。

28
user248237

答えは使用することです:

 __file__

これは相対パスを返します。

os.path.abspath(__file__) 

フルパスを取得するために使用できます。

19
user248237

現在のファイルのディレクトリを取得する方法は次のとおりです。

import os
os.path.abspath(os.path.dirname(__file__))
42
Sam Dolan

これまでの回答は、あなたが要求した仕事を正確に実行するos.path.abspathを正しく示しています。ただし、多くの場合、 os.path.normpath およびos.path.realpathもこの種のタスク(表現を正規化し、シンボリックリンクを削除するため)で非常に役立つ可能性があることを忘れないでください(もちろん、特定のユースケースがこれらの「多く」に該当するかどうかは、私たちが持っているわずかな情報から判断することは不可能です;-)。

5
Alex Martelli
import os
dirname, filename = os.path.split(os.path.abspath(__file__))
1
ars