一种独立于系统的方法,使用python来获取安装了python的根目录/驱动器

时间:2012-08-20 16:32:45

标签: python path operating-system cross-platform

对于Linux,这会给我/,因为C盘上的Windows会给我C:\\。请注意,python不一定安装在Windows上的C驱动器上。

6 个答案:

答案 0 :(得分:85)

试试这个:

import os

def root_path():
    return os.path.abspath(os.sep)

在Linux上,这将返回/

在Windows上,这将返回C:\\或当前驱动器

的任何内容

答案 1 :(得分:23)

您可以使用sys.executable获取Python可执行文件的路径:

>>> import sys
>>> import os
>>> sys.executable
'/usr/bin/python'

然后,对于Windows,驱动器号将是splitdrive的第一部分:

>>> os.path.splitdrive(sys.executable)
('', '/usr/bin/python')

答案 2 :(得分:7)

以下是您的需求:

import sys, os

def get_sys_exec_root_or_drive():
    path = sys.executable
    while os.path.split(path)[1]:
        path = os.path.split(path)[0]
    return path

答案 3 :(得分:4)

使用pathlib(Python 3.4 +):

import sys
from pathlib import Path

path = Path(sys.executable)
root_or_drive = path.root or path.drive

答案 4 :(得分:2)

根据 Eugene Yarmash 的回答,您可以在 Python >= 3.4 中使用 hasNot 中的 PurePath.anchor 属性,即:

<块引用>

驱动器和根目录的串联

使用 pathlib 获取 Python 安装位置,完整的解决方案是:

sys.executable

这会在 POSIX(Linux、Mac OS)上生成 import sys from pathlib import Path root = Path(sys.executable).anchor ,并且在 Windows 上应该给您 '/'(假设您的安装是在 'c:\\' 上)。您可以使用任何其他路径而不是 c: 来获取其他路径所在的驱动器和根目录。

答案 5 :(得分:0)

这是一个跨平台、PY2/3 兼容的函数,它返回给定路径的根。根据您的上下文,您可以将 Python 可执行文件路径、脚本所在的路径或任何对您的用例有意义的内容提供给其中。

import os

def rootpath( path ):     
    return os.path.splitdrive(os.path.abspath( path ))[0] + os.sep
    

所以对于Python解释器的根路径:

import sys

PY_ROOT_PATH = rootpath( sys.executable )