前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中os.path.isabs(path)的分析

python中os.path.isabs(path)的分析

作者头像
狼啸风云
修改2022-09-02 21:24:02
7130
修改2022-09-02 21:24:02
举报

这个本身是小组朋友问的问题,感觉不错,我给出的回答 问:

代码语言:javascript
复制
>>> os.path.isabs("/home")
True
>>> os.path.isabs("/home/..")
True
>>> os.path.isabs("home/..")
False

这里第二个应该是相对路径吧? 应该返回False?

答:

首先,给段资料 The current os.path.isabs documentation says: > isabs(path) >    Return True if path is an absolute pathname (begins with a slash). The "begins with a slash" part is incorrect since certain systems use a different pathname notation. For example, on Macintosh (where os.sep == ":") this is an absolute pathname: hardDriveName:folderName1:folderName2:fileName.ext ...and this is a relative one: :folderName1:fileName.ext Moreover, on Windows os.path.isabs('\\') returns True since '\\' is an alias for the current drive letter (e.g. C:\\) hence, independently from what said before, the documentation should include also the "backslash" term. It turns out that on Windows there are really 4 different kinds of paths: 1) Completely relative, e.g. foo\bar 2) Completely absolute, e.g. c:\foo\bar or \\server\share 3) Halfbreeds with no drive, e.g. \foo\bar 4) Halfbreeds relative to the current working directory on a specific drive, e.g. c:foo\bar Python 2.5's os.path.isabs() method considers both (2) and (3) to be absolute; 然后,分析 |这里第二个应该是相对路径吧? 应该返回False? 根据, linux中absolute *is* begins with a slash, so return True 说说,第三个吧,你除非在"/"目录下,要不然在其他目录下当然是错的,应为这个路径就不对 而,我在"/"目录下也试了,也返回False,那是因为没有以slash开始 linux中,你只用记下上面那句话就好,其他系统看上面的资料

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档