python abspath返回路径两次

时间:2016-03-18 13:11:51

标签: python os.path

我正在尝试使用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吗?

1 个答案:

答案 0 :(得分:3)

可能是因为当前的工作目录是/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))相同。这可以用于获得相对于任意提供的路径的路径。 (它还表明您实际上基本上加入了当前工作目录和提供的(相对)路径)