如何用Python跨平台检测路径是绝对路径还是相对路径?

201 投票
9 回答
101165 浏览
提问于 2025-04-16 01:44

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)

撰写回答