Windows 系统上 os.path.join() 中的正斜杠和缺失参数

问题描述 投票:0回答:0

我在windows系统上工作。我想用 os.path.join 加入路径列表:

os.path.join('\\\\server\\directory', 'customer_files', 'other_directories', '/230221/12345.png')

但我只得到连接第一个和最后一个参数的路径:

'\\\\server\\directory/230221/12345.png'

我想获得连接路径:

'\\\\server\\directory\\customer_files\\other_directories\\230221/12345.png'

在这里,

server
是连接到计算机网络的共享资源。
directory
是该共享系统中的一个目录。

如果我从最后一个参数中删除开始的正斜杠 (

/230221/12345.png
230221/12345.png
),我会得到我预期的连接路径。

我的问题是:为什么我们只忽略正斜杠之前的中间路径,而不是第一条路径?

如果我们查看 os.path.joindocs,它说:

如果段是绝对路径(在 Windows 上需要驱动器和根目录),则忽略所有先前的段并从绝对路径段继续连接。

在 Windows 上,当遇到根路径段(例如,r'oo')时,驱动器不会重置。如果一个段在不同的驱动器上或者是绝对路径,则忽略所有先前的段并且驱动器被重置

是否将

'\\\\server\\directory'
视为驱动器?如果是,为什么?

python python-3.x windows os.path
© www.soinside.com 2019 - 2024. All rights reserved.