Python的意外行为路径.relos

2024-05-16 00:39:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用网络地址时遇到问题。尝试了Python3.6和Windows。调用

os.path.relpath(r"\\ZEYCUS\first\second\file.txt", start=r"\\ZEYCUS\first")

我得到了'second\\file.txt',正如我所料。但是

^{pr2}$

我收到一条错误消息:ValueError: path is on mount '\\\\ZEYCUS\\first', start on mount 'C:'。在

怎么回事?C:位是从哪里来的?我应该如何使用relpath来获得{}?在


Tags: pathtxtosonwindows错误startfile
1条回答
网友
1楼 · 发布于 2024-05-16 00:39:39

这是因为r'\\ZEYCUS'实际上不是一个操作系统路径。它是一个网络主机说明符。Windows使用从DOS继承的驱动器号,它们之间没有相对路径;相对路径只在驱动器中起作用。r"\\ZEYCUS\first"是一个网络卷,其操作方式类似于驱动器。实际上,整个部分变成了一个隐含的驱动器号。C:很可能是您的系统驱动器,也可能是Python进程的当前驱动器。如果您只在Cmd中尝试dir \\zeycus,您会发现这是一个无效的卷语法(在一个相当无用的消息中),即使在资源管理器中的同一个说明符生成了一个卷列表。在

相关问题 更多 >