有人能告诉我如何在Python中跨平台获取路径的父目录吗?如。
C:\Program Files ---> C:\
and
C:\ ---> C:\
如果目录没有父目录,则返回目录本身。这个问题似乎很简单,但我无法从谷歌中找到它。
有人能告诉我如何在Python中跨平台获取路径的父目录吗?如。
C:\Program Files ---> C:\
and
C:\ ---> C:\
如果目录没有父目录,则返回目录本身。这个问题似乎很简单,但我无法从谷歌中找到它。
当前回答
>>> import os
>>> os.path.basename(os.path.dirname(<your_path>))
例如在Ubuntu中:
>>> my_path = '/home/user/documents'
>>> os.path.basename(os.path.dirname(my_path))
# Output: 'user'
例如在Windows中:
>>> my_path = 'C:\WINDOWS\system32'
>>> os.path.basename(os.path.dirname(my_path))
# Output: 'WINDOWS'
这两个例子都是在Python 2.7中尝试的
其他回答
假设我们有这样的目录结构
1]
/home/User/P/Q/R
我们想要从目录R中访问“P”的路径,然后我们可以访问using
ROOT = os.path.abspath(os.path.join("..", os.pardir));
2]
/home/User/P/Q/R
我们想要从目录R中访问“Q”目录的路径,然后我们可以访问using
ROOT = os.path.abspath(os.path.join(".", os.pardir));
print os.path.abspath(os.path.join(os.getcwd(), os.path.pardir))
您可以使用它来获取py文件当前位置的父目录。
import os
def parent_directory():
# Create a relative path to the parent of the current working directory
relative_parent = os.path.join(os.getcwd(), "..") # .. means parent directory
# Return the absolute path of the parent directory
return os.path.abspath(relative_parent)
print(parent_directory())
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
parent_path = os.path.abspath(os.path.join(dir_path, os.pardir))
使用os.path.dirname:
>>> os.path.dirname(r'C:\Program Files')
'C:\\'
>>> os.path.dirname('C:\\')
'C:\\'
>>>
注意:os.path.dirname()会给出不同的结果,这取决于路径中是否包含后面的斜杠。这可能是也可能不是您想要的语义。Cf. @kender的答案使用os.path。加入(yourpath os.pardir)。