Linuxの場合、これは私に与えます/
、Windowsの場合、Cドライブ上の私に与えますC:\\
。Pythonは必ずしもWindowsのCドライブにインストールされているとは限らないことに注意してください。
6 に答える
これを試して:
import os
def root_path():
return os.path.abspath(os.sep)
Linuxでは、これは/
Windowsでは、これが返さC:\\
れるか、現在のドライブが何であれ
以下を使用して、Python実行可能ファイルへのパスを取得できますsys.executable
。
>>> import sys
>>> import os
>>> sys.executable
'/usr/bin/python'
次に、Windowsの場合、ドライブ文字はsplitdriveの最初の部分になります。
>>> os.path.splitdrive(sys.executable)
('', '/usr/bin/python')
必要なものは次のとおりです。
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
pathlib
(Python 3.4以降)の使用:
import sys
from pathlib import Path
path = Path(sys.executable)
root_or_drive = path.root or path.drive
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(インストールがオンになっていると仮定)で実行できるはずですc:
。sys.executable
この他のパスが配置されているドライブとルートを取得する代わりに、他のパスを使用できます。
これは、指定されたパスのルートを返すクロスプラットフォームの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 )