使用os.environ访问系统变量

时间:2019-05-06 07:56:36

标签: python python-3.x

我使用以下代码创建了Windows system variable

import os
os.environ['BJT'] = 'HELLO'

但是我在Advanced settings \ system variables中看不到它,而且在尝试打印时也看不到它:

import os
print(os.environ['BJT'])

我认为,当我使用os.environ创建系统变量时,就像在系统设置中那样完全创建它。是否可以从python代码创建系统变量并即使重新启动计算机也可以访问它?

2 个答案:

答案 0 :(得分:3)

您需要调用系统(具有管理员权限)以创建system variable,可以使用subprocess

import subprocess
subprocess.run(['setx', 'BJT', '"HELLO"', '/M'])

python3.5 之前,您将需要使用process.call

答案 1 :(得分:1)

对什么环境有误解。它只是进程可以传递给其子级的(字符串)变量的映射。具体来说,一个流程可以更改其自身的环境(将来的子级将使用该环境),但这不会更改其父级的环境,甚至也不会更改其现有子级的环境。

此外,Windows提供了系统和用户环境变量,这些变量用作任何进程的初始环境。 os.environputenv都不会更改,而只能通过Windows API或shell命令setx来更改。