python – 为什么os.normpath没有折叠一个前导的双斜杠?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 为什么os.normpath没有折叠一个前导的双斜杠?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含900字,纯文字阅读大概需要2分钟。
内容图文
![python – 为什么os.normpath没有折叠一个前导的双斜杠?](/upload/InfoBanner/zyjiaocheng/808/53dfecfb092d47a7a1914cdecb6d6d2f.jpg)
在Unix下,os.path.normpath将多个斜杠折叠为单个斜杠,除非出现两个斜杠,即路径的起点.为什么例外?
为了说明,我得到以下转换:
//double/slash/stays -> //double/slash/stays
/double/slash//gone// -> /double/slash/gone/
double//slash//gone/ -> double/slash/gone
///triple/slash/gone -> /triple/slash/gone
////quad/slash/gone -> /quad/slash/gone
这对我来说很奇怪.我可以模糊地想象这对SMB安装或URL有用,但我不认为我关心那些. Python的行为是否有任何隐藏的智慧,或者我应该贬低前导//我自己?
[更新]
鉴于下面的答案,看起来最好不要崩溃//,而是要么只是接受它,要么将其视为错误.
解决方法:
因为POSIX允许以实现定义的方式处理以两个斜杠开头的路径.换句话说,// foo并不一定与所有POSIX系统上的/ foo相同.
从IEEE Std 1003.1开始:
A pathname that begins with two successive slashes may be interpreted
in an implementation-defined manner, although more than two leading
slashes shall be treated as a single slash.
另见this bug report(已关闭为无效).
内容总结
以上是互联网集市为您收集整理的python – 为什么os.normpath没有折叠一个前导的双斜杠?全部内容,希望文章能够帮你解决python – 为什么os.normpath没有折叠一个前导的双斜杠?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。