我在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.join 的docs,它说:
如果段是绝对路径(在 Windows 上需要驱动器和根目录),则忽略所有先前的段并从绝对路径段继续连接。
在 Windows 上,当遇到根路径段(例如,r'oo')时,驱动器不会重置。如果一个段在不同的驱动器上或者是绝对路径,则忽略所有先前的段并且驱动器被重置
是否将
'\\\\server\\directory'
视为驱动器?如果是,为什么?