如何在Python中获取绝对文件路径
假设你有一个路径,比如 "mydir/myfile.txt"
,那么在Python中,怎么找到这个文件的绝对路径呢?比如在Windows系统上,你可能会得到这样的结果:
"C:/example/cwd/mydir/myfile.txt"
11 个回答
39
import os
os.path.abspath(os.path.expanduser(os.path.expandvars(PathNameString)))
请注意,在Unix系统中,使用expanduser
是必要的,因为文件(或目录)名称和位置的表达式可能以~/
开头(这个波浪号代表用户的主目录)。而expandvars
则负责处理其他环境变量(比如$HOME
)。
135
你可以使用新的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
1503
>>> 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'
如果它已经是一个绝对路径,这个方法也能正常工作: