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

时间:2014-11-14 13:10:11

标签: python environment-variables env

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

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

我想让它更改PATH的用户变量,因为这可以不受任何限制地完成。

1 个答案:

答案 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的环境都不会改变。