我在使用网络地址时遇到问题。尝试了Python3.6和Windows。调用
os.path.relpath(r"\\ZEYCUS\first\second\file.txt", start=r"\\ZEYCUS\first")
我得到了'second\\file.txt'
,正如我所料。但是
我收到一条错误消息:ValueError: path is on mount '\\\\ZEYCUS\\first', start on mount 'C:'
。在
怎么回事?C:
位是从哪里来的?我应该如何使用relpath
来获得{
这是因为
r'\\ZEYCUS'
实际上不是一个操作系统路径。它是一个网络主机说明符。Windows使用从DOS继承的驱动器号,它们之间没有相对路径;相对路径只在驱动器中起作用。r"\\ZEYCUS\first"
是一个网络卷,其操作方式类似于驱动器。实际上,整个部分变成了一个隐含的驱动器号。C:
很可能是您的系统驱动器,也可能是Python进程的当前驱动器。如果您只在Cmd中尝试dir \\zeycus
,您会发现这是一个无效的卷语法(在一个相当无用的消息中),即使在资源管理器中的同一个说明符生成了一个卷列表。在相关问题 更多 >
编程相关推荐