gpt4 book ai didi

python - 为什么 os.normpath 不折叠前导双斜杠?

转载 作者:太空狗 更新时间:2023-10-30 00:46:33 26 4
gpt4 key购买 nike

在 Unix 下,os.path.normpath 将多个斜杠折叠成单个斜杠除非正好有两个斜杠出现在路径的开头。为什么异常(exception)?

为了说明,我得到以下转换:

//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 挂载或 URLS 很有用,但我认为我不关心这些。 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 不折叠前导双斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7816818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com