对于Linux,这会给我/
,因为C盘上的Windows会给我C:\\
。请注意,python不一定安装在Windows上的C驱动器上。
答案 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 )