のようなパスが与えられた場合、"mydir/myfile.txt"
Python で現在の作業ディレクトリに相対するファイルの絶対パスを見つけるにはどうすればよいですか? たとえば、Windows では、次のような結果になる可能性があります。
"C:/example/cwd/mydir/myfile.txt"
のようなパスが与えられた場合、"mydir/myfile.txt"
Python で現在の作業ディレクトリに相対するファイルの絶対パスを見つけるにはどうすればよいですか? たとえば、Windows では、次のような結果になる可能性があります。
"C:/example/cwd/mydir/myfile.txt"
>>> import os
>>> os.path.abspath("mydir/myfile.txt")
'C:/example/cwd/mydir/myfile.txt'
すでに絶対パスである場合にも機能します。
>>> import os
>>> os.path.abspath("C:/example/cwd/mydir/myfile.txt")
'C:/example/cwd/mydir/myfile.txt'
新しい Python 3.4 ライブラリを使用できますpathlib
。(Python 2.6 または 2.7 用に を使用して入手することもできますpip install pathlib
。) 作成者は次のように書いています。
Windows で絶対パスを取得するには:
>>> from pathlib import Path
>>> p = Path("pythonw.exe").resolve()
>>> p
WindowsPath('C:/Python27/pythonw.exe')
>>> str(p)
'C:\\Python27\\pythonw.exe'
または UNIX の場合:
>>> from pathlib import Path
>>> p = Path("python3.4").resolve()
>>> p
PosixPath('/opt/python3/bin/python3.4')
>>> str(p)
'/opt/python3/bin/python3.4'
ドキュメントはこちら: https://docs.python.org/3/library/pathlib.html
unipath
今日では、以下に基づいたパッケージも使用できますpath.py
: http://sluggo.scrapping.cc/python/unipath/
>>> from unipath import Path
>>> absolute_path = Path('mydir/myfile.txt').absolute()
Path('C:\\example\\cwd\\mydir\\myfile.txt')
>>> str(absolute_path)
C:\\example\\cwd\\mydir\\myfile.txt
>>>
一般的な os.path ユーティリティへのクリーンなインターフェイスを提供するため、このパッケージを使用することをお勧めします。