协慌网

登录 贡献 社区

如何在 Python 中获取绝对文件路径

给定诸如"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 库pathlibpip install pathlib在 Python 2.6 或 2.7 中获得它。)作者写道:“该库的目的是提供一个简单的类层次结构来处理文件系统路径以及用户对其进行的常见操作。”

要在 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

安装第三方路径模块(位于PyPI ),它将所有os.path函数和其他相关函数包装到对象上的方法中,该方法可以在使用字符串的任何地方使用:

>>> from path import path
>>> path('mydir/myfile.txt').abspath()
'C:\\example\\cwd\\mydir\\myfile.txt'