52

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

4

6 回答 6

110

尝试这个:

import os

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

在 Linux 上返回/

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

于 2014-03-07T16:26:24.320 回答
27

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

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

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

>>> os.path.splitdrive(sys.executable)
('', '/usr/bin/python')
于 2012-08-20T16:38:36.113 回答
8

这是您需要的:

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
于 2012-08-20T16:48:58.790 回答
5

使用pathlib(Python 3.4+):

import sys
from pathlib import Path

path = Path(sys.executable)
root_or_drive = path.root or path.drive
于 2017-05-25T21:41:40.703 回答
3

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

驱动器和根目录的串联

sys.executable用于获取 python 安装的位置,一个完整的解决方案是:

import sys
from pathlib import Path

root = Path(sys.executable).anchor

这会导致在'/'POSIX(Linux、Mac OS)上,并且应该'c:\\'在 Windows 上为您提供(假设您的安装是 on c:)。您可以使用任何其他路径而不是sys.executable获取该其他路径所在的驱动器和根目录。

于 2021-01-31T02:09:53.740 回答
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 )
于 2021-02-27T16:04:05.077 回答