928

のようなパスが与えられた場合、"mydir/myfile.txt"Python で現在の作業ディレクトリに相対するファイルの絶対パスを見つけるにはどうすればよいですか? たとえば、Windows では、次のような結果になる可能性があります。

"C:/example/cwd/mydir/myfile.txt"
4

11 に答える 11

1354
>>> 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'
于 2008-09-09T10:21:03.987 に答える
110

新しい 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

于 2014-10-24T01:05:02.140 に答える
31

サードパーティのパス モジュール( にあります) をインストールします。これにより、すべての関数とその他の関連関数がオブジェクトのメソッドにPyPIラップされ、文字列が使用される場所ならどこでも使用できるようになります。os.path

>>> from path import path
>>> path('mydir/myfile.txt').abspath()
'C:\\example\\cwd\\mydir\\myfile.txt'
于 2008-09-12T06:53:25.507 に答える
16

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 ユーティリティへのクリーンなインターフェイスを提供するため、このパッケージを使用することをお勧めします。

于 2013-03-10T17:11:57.077 に答える