Python设置Windows系统变量Path

宝宝不想说话,只想上码

#! python3
# _*_ coding:utf-8 _*_
'''
    添加系统环境变量,即为键Path追加值(路径)
'''

import winreg
import sys
import ctypes


def is_admin():
    '''获取管理员权限'''
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

def append_Path(value, type=winreg.REG_EXPAND_SZ, keyname='Path'):
	'''默认为键Path追加值(路径)'''
    if is_admin():	# 以管理员身份运行以下代码
        # 连接注册表根键HKEY_LOCAL_MACHINE
        regRoot = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE)
        subDir = r"SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
        # 只读方式打开注册表
        key_read = winreg.OpenKey(regRoot, subDir)
        count = winreg.QueryInfoKey(key_read)[1]  # 获取该目录下所有键的个数(0-下属键个数;1-当前键值个数)
        for i in range(count):
            name,values,type_ = winreg.EnumValue(key_read, i)
            if name.lower() == keyname.lower():
                if values[-1] == ';':
                    values += value
                else:
                    values += f';{value}'
                # 以只写方式打开注册表
                key_write = winreg.OpenKey(regRoot, subDir, 0, winreg.KEY_WRITE)
                # 追加值
                winreg.SetValueEx(key_write, name, 0, type, values)
                winreg.CloseKey(key_write)
        winreg.CloseKey(key_read)
    else:
        if sys.version_info[0] == 3:
            ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)

if __name__ == '__main__':
    append_Path('D:\Test')
  

参考文档

文档1

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琼觞0543

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值