使用 Python 的当前用户的环境变量



如何使用Python获取当前用户的环境变量列表("用户变量")?

os.environ()返回系统变量,更改这些变量需要管理员访问权限。

我想让它更改 PATH 的用户变量,因为这可以在没有任何限制的情况下完成。

这是

错误的。 os.environ返回当前进程的环境。在此级别,没有用户或系统变量的概念。

当然,您可以更改这些环境变量中的任何一个。对于PATH,只需执行以下操作:

os.environ['PATH'] = new_path

但您只是在改变当前的流程环境。这意味着这个新环境将被当前进程及其所有子进程使用,但在进程结束时将消失。

没有可移植的方式来修改调用 shell 的环境

无论如何,在窗口中,您可以使用命令修改永久环境变量 setx .例如,如果要将用户环境变量FOO更改为bar,则可以在python脚本中执行此操作:

import os
os.system("setx FOO bar")

但是,此更改将仅由执行命令后从 Windows 资源管理器启动的进程使用。特别是 python 脚本的环境和调用cmd.exe的环境都不会改变,如果有的话。

是的,这是可能的

import subprocess
raw_path = subprocess.run(["powershell", "-Command","[Environment]::GetEnvironmentVariable('Path','User')"], capture_output=True) 
user_path = raw_path.stdout.decode('ascii').split(';') print(user_path)

相关内容

  • 没有找到相关文章

最新更新