为什么在Windows上os.path.relpath
在使用驱动器作为起始点(显式或隐含(当前目录)时)没有返回正确的相对路径
>>> os.getcwd()
'U:\\projects'
>>> os.path.relpath(r'D:\foo\something', r"D:\\")
'..\\foo\\something'
>>> os.chdir("D:\\")
>>> os.getcwd()
'd:\\'
>>> os.path.relpath(r'D:\foo\something')
'..\\foo\\something'
>>> os.path.relpath(r'D:\foo\something', r"D:\\foo")
'something'
我期待看到
'foo\\something'
或
'.\\foo\\something'
它与windows上的os.path.join注释有什么关系吗?
请注意,在Windows上,因为有一个 每个驱动器的当前目录, os.path.join(“c:”,“foo”)代表一个 相对于当前目录的路径 在驱动器上
我正在使用python 2.7
答案 0 :(得分:3)
问题#5117:修复了根目录 posixpath.relpath()上的相关问题 和ntpath.relpath()。