如何使用Python获取当前用户(“用户变量”)的环境变量列表?
os.environ()
返回系统变量,更改这些变量需要管理员访问权限。
我想让它更改PATH的用户变量,因为这可以不受任何限制地完成。
答案 0 :(得分:2)
那是错的。 os.environ
返回当前进程的环境。在这个级别,没有用户或系统变量的概念。
您当然可以更改任何这些环境变量。对PATH
只做:
os.environ['PATH'] = new_path
但您只是在更改当前流程环境。这意味着这个新环境将被当前进程及其所有子进程使用,但在进程结束时将会消失。
没有可移植的方法来修改调用shell的环境
无论如何,在Windows中,您可以使用命令setx
修改永久环境变量。例如,如果要将用户环境变量FOO
更改为bar
,则可以在python脚本中进行:
import os
os.system("setx FOO bar")
但是,只有在执行命令后从Windows资源管理器启动的进程才会使用此更改。特别是python脚本的环境和调用cmd.exe
的环境都不会改变。