我正在尝试使用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
吗?
答案 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))
相同。这可以用于获得相对于任意提供的路径的路径。 (它还表明您实际上基本上加入了当前工作目录和提供的(相对)路径)