python操作环境变量(注册表)

本文介绍了如何在Python中使用os模块的environ来查看和设置环境变量,但注意这些改动仅限于当前代码环境。同时,文章提到了通过操作注册表来修改本机的真实环境变量,并给出了相关示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

os.environ

在python代码中导入python自带模块os,使用os.environ可以获取所有的环境变量信息,但是只是一个映射,也就是说对于environ的修改只是在当前代码中,不会去修改本机上真实的环境变量。
一、设置系统环境变量
1、os.environ['环境变量名称']='环境变量值' #其中key和value均为string类型
2、os.putenv('环境变量名称', '环境变量值')

二、获取系统环境变量
1、os.environ['环境变量名称']
2、os.getenv('环境变量名称')

  import os

  print(os.environ['PATH'])#获取的路径和os.getenv('PATH')获取的一样
  print(os.getenv('PATH'))
  os.putenv('aaa', 'bbb')
  os.environ['ccc'] = 'ddd'
  print(os.environ)//里面有ccc,但是没有aaa
  print(os.getenv('aaa'))//None

注意: 官网提醒

  • putenv()直接调用不会改变os.environ,因此最好修改os.environ
  • 在某些平台上,包括FreeBSD和Mac OS X,设置environ可能会导致内存泄漏。
修改本机真实环境变量

这就是我上一节说的操作注册表了,可以获取到注册表中的环境变量,并修改真实的环境

  • 系统环境变量:
winreg.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment'
  • 用户环境变量
HKEY_CURRENT_USER\Environment

根据环境变量在注册表中的地址,分别可以进行修改,修改以后记得使用import ctypes,更新注册表,十七真正生效。
下面是一个使用的例子:

path_key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r'SYSTEM\CurrentControlSet\Control\Session Manager\Environment',0, winreg.KEY_ALL_ACCESS)
path_value = winreg.QueryValueEx(path_key, 'Path')
winreg.SetValueEx(path_key,"Path",0,winreg.REG_EXPAND_SZ, '新的环境变量')
refresh()
#修改注册表后,更新生效
def refresh():
  HWND_BROADCAST = 0xFFFF
  WM_SETTINGCHANGE = 0x1A

  SMTO_ABORTIFHUNG = 0x0002

  result = ctypes.c_long()
  SendMessageTimeoutW = ctypes.windll.user32.SendMessageTimeoutW
  SendMessageTimeoutW(HWND_BROADCAST, WM_SETTINGCHANGE, 0, u'Environment', SMTO_ABORTIFHUNG, 5000, ctypes.byref(result))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值