如何用Python跨平台方式检查path是绝对path还是相对path?

UNIX绝对path以'/'开始,而Windows则以字母'C:'或'\'开头。 python是否有一个标准的function来检查path是绝对的还是相对的?

如果path是绝对path,则os.path.isabs返回True否则返回False 。 该文件说,它在Windows中工作(我可以确认它在Linux个人工作)。

 os.path.isabs(my_path) 

如果你真正想要的是绝对path,不要费心检查是否是,只是得到abspath

 import os print os.path.abspath('.') 

使用os.path.isabs

 import os.path os.path.isabs('\home\user') True os.path.isabs('user') False 

os.path模块将拥有你所需要的一切。

实际上,我认为上述答案都没有解决真正的问题:跨平台的path。 os.path所做的是加载“path”库的操作系统相关版本。 所以解决scheme是显式加载相关(OS)path库:

 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 

另一种方式,如果你不在当前的工作目录,有点肮脏,但它适用于我。

 import re path = 'my/relative/path' # path = '..my/relative/path' # path = './my/relative/path' pattern = r'([a-zA-Z0-9]|[.])+/' is_ralative = bool(pattern)