Answers:
os.path.isabs
True
如果路径是绝对的,False
则返回,否则返回。该文档说它可以在Windows中运行(我可以确认它可以在Linux中正常运行)。
os.path.isabs(my_path)
如果您真正想要的是绝对路径,则不必费心检查它是否是绝对路径,只需获取abspath
:
import os
print os.path.abspath('.')
import os.path
os.path.isabs('/home/user')
True
os.path.isabs('user')
False
实际上,我认为以上答案均未解决真正的问题:跨平台路径。os.path的作用是加载OS依赖的'path'库版本。因此解决方案是显式加载相关的(OS)路径库:
import ntpath
import posixpath
ntpath.isabs("Z:/a/b/c../../H/I/J.txt")
True
posixpath.isabs("Z:/a/b/c../../H/I/J.txt")
False
def path_is_abs(p): return (len(p) > 1) and (p[0] == '/' or p[1] == ':')
从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:/')
Path('\tmp').is_absolute()
给出正确False
,而os.path.isabs('\tmp')
给出错误True
。(有些人认为这\tmp
是Windows上的绝对路径,但这仅适用于绝对路径的非常无用的定义。)
os.path.isabs('c:\\')
返回False。