如何用Python跨平台检测路径是绝对路径还是相对路径?
UNIX系统的绝对路径是从'/'开始的,而Windows系统的绝对路径是从字母'C:'或者'\'开始的。请问Python有没有标准的函数可以用来检查一个路径是绝对路径还是相对路径呢?
9 个回答
33
从 python 3.4
开始,pathlib 这个库就可以使用了。
In [1]: from pathlib import Path
In [2]: Path('..').is_absolute()
Out[2]: False
In [3]: Path('C:/').is_absolute()
Out[3]: True
In [4]: Path('..').resolve()
Out[4]: WindowsPath('C:/the/complete/path')
In [5]: Path('C:/').resolve()
Out[5]: WindowsPath('C:/')
51
如果你真正想要的是绝对路径,那就别费心去检查它是不是,直接使用 abspath
就行了:
import os
print(os.path.abspath('.')) # relative paths become absolute
print(os.path.abspath('C:\Users')) # absolute paths will remain absolute
287
os.path.isabs
这个函数用来检查一个路径是不是绝对路径。如果是绝对路径,它会返回 True
,如果不是,就返回 False
。根据官方文档,这个函数在Windows系统上可以正常使用(我个人可以确认它在Linux系统上也能正常工作)。
os.path.isabs(my_path)