如何获取运行代码的计算机的根Windows目录? (蟒蛇)

时间:2017-11-10 14:55:18

标签: python python-3.x

如上所述,只需检查是否有方法检查运行程序的计算机的根字母(即C:\\S:\\)。

我不知道是否有一种内置于os的方法,或者我是否需要专业功能。

4 个答案:

答案 0 :(得分:3)

  

在Windows上试试这个:

第一种方式(使用ctypes和pathlib模块)

import ctypes.wintypes, pathlib
CSIDL_PERSONAL = 5
SHGFP_TYPE_CURRENT = 0

buf = ctypes.create_unicode_buffer(ctypes.wintypes.MAX_PATH)
ctypes.windll.shell32.SHGetFolderPathW(None, CSIDL_PERSONAL, None, SHGFP_TYPE_CURRENT, buf)
my_path = pathlib.Path(buf.value)
print(my_path.drive)

另一种方式(使用win32包):

import win32api
print(win32api.GetWindowsDirectory())

第三种方式(使用win32包):

import win32com.client
objShell = win32com.client.Dispatch("WScript.Shell")
allUserDocs = objShell.ExpandEnvironmentStrings("%windir%")
print(allUserDocs)

第四种方式(使用os模块):

import os
print(os.path.expandvars("%SystemRoot%"))

第五种方式(使用wmi模块):

import wmi
c = wmi.WMI()
for os in c.Win32_OperatingSystem():
    print(os.SystemDrive)
  

在Windows和LINUX上:

第一种方式(使用os和pathlib模块):

import os, pathlib
home = pathlib.Path(os.path.expanduser("~"))
print(home.drive)

第二种方式(使用pathlib模块):

import pathlib
my_path = pathlib.Path(pathlib.Path.home())
print(my_path.drive)

祝你好运......

答案 1 :(得分:1)

这就是你需要的

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

它给出了' /'对于Linux 和C:\ for windows

答案 2 :(得分:0)

请注意,WiLL_K的方法更好,我不知道这种方法是否存在。

import os
letter = os.getcwd().split("\\")[0][0]

如果脚本是从C:驱动器执行的,letter将包含C

答案 3 :(得分:0)

[注意:我使用的是Python 3.6.3和Windows 8.1 x64]

**

  

os.path.abspath给出了根目录,os.sep给出了   操作系统用于分隔路径名组件的字符   这是' \'对于Windows。要删除我使用的双斜杠   os.path.normpath()函数

**

import os

def getRootDirectory():
    return os.path.normpath(os.path.abspath(os.sep))

print(getRootDirectory())

哪个输出:

C:\