如何在 Python 中获取文件系统的根目录?

How to get the filesystem's root directory in Python?

情况:我需要找到任何操作系统的顶级 [root] 目录,尽可能使用最 Pythonic 的方式,而无需系统调用。

问题:虽然我可以使用 if "Windows" in platform.system() 之类的东西检查操作系统,但我无法确定驱动器盘符是否始终为 C:\/(后者是不太可能)。我也无法确定只有 Windows 和 *NIXes 需要编目。

问:有没有办法获取任何操作系统的顶级目录?最好使用 os 模块,因为我已经在使用它了。

我相信 os.path.abspath(os.sep) 接近您的要求。

Windows 没有单个文件系统根。您可以移植的最好的方法是获取文件系统当前目录的根目录(假设当前目录名为 '.')。

获取该值的表达式是:

os.path.abspath('.').split(os.path.sep)[0]+os.path.sep

在 Windows 上,如果当前目录在 C: 下的任何位置,该行将 return 'C:\',而类 unix 系统将 return '/'

我不知道 VMS 会给你什么。

您可以使用以下方法进入根目录。

file_path = os.path.abspath(__file__)
BASE_DIR = os.path.dirname(file_path)
while (os.path.isdir(BASE_DIR)):
    if (BASE_DIR==os.path.dirname(BASE_DIR)):
        break
    else:
        BASE_DIR=os.path.dirname(BASE_DIR)
        
print(f"{BASE_DIR} is the root directory")

首先,获取BASE_DIR作为当前工作目录。然后,使用 while 循环转到父目录,直到到达根目录。 当 BASE_DIR 是根目录时,再次在根目录上使用 os.path.dirname 会给出根目录本身。因此,使用它作为检查,我们可以获得根目录。