是否有Python函数来确定os模块的根目录?
Is there a Python function to determine the root directory with os module?
我最近开始学习Python语言和我的教科书,在介绍os
模块时,解释了如何使用os.name
属性来确定根目录操作系统 - 因此,基于 if-elif-else
构造的硬编码解决方案。
只是为了练习和开始对这门语言产生兴趣,我试图概括这个解决方案。
我用的是os.path.split()
函数,知道拆分根目录root_dir
returns元组(root_dir, '')
,其中第一个元素是根目录,第二个元素是空字符串。
在这里,我使用了一个支持变量 my_tuple
,初始化为 (os.getcwd(), None)
,它通过在 while
循环中使用 split()
函数更新,直到它的第二个元素是 [=23] =].
my_tuple = (os.getcwd(), None)
while my_tuple[1] != '':
my_tuple = os.path.split(my_tuple[0])
root_dir = my_tuple[0]
显然,这是一个笨拙的解决方案,因此我想知道是否有更简洁且更 Pythonic 的方法来实现目标。
例如,如果导入 pathlib
模块,他们可能会使用 PurePath.root
属性,很简单。
os
模块是否可以实现类似的功能?
您 post 的评论包含您要求的解决方案,但为了完整起见,我将其写在这里。使用 os
模块,您可以使用
path = os.getcwd()
root = os.path.splitdrive(path)[0]
让变量 root
包含您想要的内容。
我最近开始学习Python语言和我的教科书,在介绍os
模块时,解释了如何使用os.name
属性来确定根目录操作系统 - 因此,基于 if-elif-else
构造的硬编码解决方案。
只是为了练习和开始对这门语言产生兴趣,我试图概括这个解决方案。
我用的是os.path.split()
函数,知道拆分根目录root_dir
returns元组(root_dir, '')
,其中第一个元素是根目录,第二个元素是空字符串。
在这里,我使用了一个支持变量 my_tuple
,初始化为 (os.getcwd(), None)
,它通过在 while
循环中使用 split()
函数更新,直到它的第二个元素是 [=23] =].
my_tuple = (os.getcwd(), None)
while my_tuple[1] != '':
my_tuple = os.path.split(my_tuple[0])
root_dir = my_tuple[0]
显然,这是一个笨拙的解决方案,因此我想知道是否有更简洁且更 Pythonic 的方法来实现目标。
例如,如果导入 pathlib
模块,他们可能会使用 PurePath.root
属性,很简单。
os
模块是否可以实现类似的功能?
您 post 的评论包含您要求的解决方案,但为了完整起见,我将其写在这里。使用 os
模块,您可以使用
path = os.getcwd()
root = os.path.splitdrive(path)[0]
让变量 root
包含您想要的内容。