猿问

os.path.join() 与 UNC 路径的行为是什么?

有人可以解释加入路径的规则吗,我对这些结果感到困惑:


print(os.path.join('\\\\192.168.1.1\\A\\B', 'C\\D', '\\E')) #\\192.168.1.1\A\E, B,C,D are thrown away

print(os.path.join('\\\\192.168.1.1\\', 'C\\D', '\\E')) #\\192.168.1.1\\E, C, D are thrown away

print(os.path.join('\\\\192.168.1.1', 'C\\D', '\\E')) #\E, \\192.168.1.1 is thrown away

print(os.path.join('C:\\A\\B', 'C\\D', '\\E')) #C:\E, A, B, C, D are thrown away


largeQ
浏览 210回答 2
2回答

白板的微信

来自[Python 3]:os.path。加入(路径,*路径):...如果组件是绝对路径,则所有先前的组件都将被丢弃,并从绝对路径组件继续连接。在 Windows 上,r'\foo'遇到绝对路径组件(例如)时不会重置驱动器号。如果一个组件包含驱动器号,则所有以前的组件都将被丢弃并重置驱动器号。请注意,由于每个驱动器都有一个当前目录,因此os.path.join("c:", "foo")表示相对于 drive 上当前目录的路径C: (c:foo),而不是c:\foo.因此(在os.path.join())中,最后一个绝对路径(并且UNC路径是绝对路径)会丢弃它之前的任何其他路径。
随时随地看视频慕课网APP

相关分类

Python
我要回答