python abspath 返回路径两次

python abspath returning path twice

我正在尝试使用 python 获取相对路径字符串的绝对路径,但它一直打印路径两次。例如:

self.path = 'Users/abdulahmad/Desktop'
self.actual_path = os.path.abspath(self.path)
print self.actual_path

我的控制台打印

/Users/abdulahmad/Desktop/Users/abdulahmad/Desktop

如果我将路径更改为:

self.path = 'Desktop'

我的控制台打印:

/Users/abdulahmad/Desktop/Desktop

在这两种情况下,它不应该只打印 /Users/abdulahmad/Desktop 吗?

可能是因为当前工作目录是/Users/abdulahmad/Desktop

例如,如果您写 path/to/file,则表示相对于当前工作目录,相对于 /Users/abdulahmad/Desktop,则表示 /Users/abdulahmad/Desktop/path/to/file

如果您阅读 python3 手册,它实际上显示 os.abspath(path) 的实现与 os.path.normpath(os.path.join(os.getcwd(), path)) 相同。这可用于获取相对于任意提供路径的路径。 (它也表明你实际上基本上加入了当前工作目录和提供的(相对)路径)