52

Linuxの場合、これは私に与えます/、Windowsの場合、Cドライブ上の私に与えます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.executablePythonインストールの場所を取得するために使用すると、完全な解決策は次のようになります。

import sys
from pathlib import Path

root = Path(sys.executable).anchor

これにより、'/'POSIX(Linux、Mac OS)が実行'c:\\'され、Windows(インストールがオンになっていると仮定)で実行できるはずです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 に答える