繁体   English   中英

如何获取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:下的任何位置,则该行将返回'C:\\' ,而类Unix系统将返回'/'

我不知道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循环go到父目录,直到到达根目录。 当 BASE_DIR 是根目录时,再次在根目录上使用 os.path.dirname 会给出根目录本身。 因此,使用它作为检查,我们可以获得根目录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM