在 Python 脚本中设置环境变量

环境变量是与系统进程交互的一种深入方式; 它允许用户获得有关系统属性、路径和已经存在的变量的更详细信息。


我们如何使用环境变量

如上所述,环境变量促使我们与系统进程进行交互。 我们可以使用环境变量来访问系统中的所有变量和键。

为此,让我们创建一个新文件,将其命名为 new.py 并输入以下代码:

new.py:

python 复制代码
import os

print("The keys and values of all environment variables:")
for key in os.environ:
    print(key, '=>', os.environ[key])

您将在终端中看到打印出的所有变量和键。

我们还可以查看特定的变量。 为此,创建一个新的 Python 文件并输入以下代码:

new.py:

python 复制代码
import os

print("The value of HOME is: ", os.environ['USERPROFILE'])

这将打印出系统的 HOME 路径。

我们还可以通过环境变量来定位我们在系统中安装的所有程序的路径。 这有利于我们准确定位已安装程序的文件位置。

为此,我们创建另一个文件 new.py,并输入以下代码片段:

new.py:

python 复制代码
import os

print("Set Environment Variables: ", os.environ['PATH'])

您将看到我们在终端中安装的程序的所有文件位置。

环境变量还提供了一种安全无缝的方式来保护我们在 API 中使用的令牌/访问密钥。 当我们将密钥放在 .env 文件中时,它会隐藏我们的密钥,不让查看我们代码的人看到,然后它还可以帮助我们在需要应用的任何地方使用密钥,而无需继续重新定义它们。

所有需要做的就是创建一个令牌并将其输入到 .env 文件中。


在 Python 中设置环境变量

除此之外,我们可以访问系统中的所有路径和环境变量; 我们可以更进一步,使用两种方法设置我们的变量,即:os.environ 和 os.environ.setdefault 方法。


使用 os.environ 方法设置环境变量

os.environ 方法可以创建一个新变量并赋值。 为此,我们将创建一个新文件,将其命名为 new.py 并输入以下代码:

new.py:

python 复制代码
import os
os.environ["USERNAME"] = "python"

print(os.environ["USERNAME"])

当我们运行它时,我们将在终端中看到 python 显示。

此外,我们可以使用 os.environ 方法更改分配给变量的值。 为此,我们将创建一个新文件,将其命名为 new.py 并输入以下代码:

new.py:

python 复制代码
import os

home = os.environ['USERNAME']
print("USERNAME:", home)

在我们的例子中,这个片段将显示分配给变量 HP 的原始值。 现在要为变量分配一个新值,我们将创建一个新文件,将其命名为 new2.py 并分配这些代码:

new2.py:

python 复制代码
import os

os.environ['USERNAME'] = 'USER'
print("USERNAME:", os.environ['USERNAME'])

在这里,我们为变量分配了一个新值 USER。 当我们运行代码时,终端将显示新分配的值 USER。


使用 os.environ.setdefault 方法设置环境变量

os.environ.setdefault 方法和 os.environ 方法一样,可以创建一个新变量并赋值。

创建一个新文件,将其命名为 new.py 并输入以下代码:

new.py:

python 复制代码
import os

if not os.environ.get("USERNAME"):
    os.environ.setdefault("USERNAME","1")
else:
     os.environ["USERNAME"] = "1"
print(os.environ["USERNAME"])

我们使用 os.environ.get 方法获取变量,然后我们使用 os.environ.setdefault 方法分配一个新变量。

当我们运行这段代码时,我们将看到终端中显示的新值。


总结

如果您打算了解计算机系统的来龙去脉,那么利用环境变量就是一种方法。

相关推荐
知行合一。。。12 小时前
Python--05--面向对象(属性,方法)
android·开发语言·python
郝学胜-神的一滴12 小时前
深度学习必学:PyTorch 神经网络参数初始化全攻略(原理 + 代码 + 选择指南)
人工智能·pytorch·python·深度学习·神经网络·机器学习
qq_3721542312 小时前
Go 中自定义类型与基础类型的显式转换规则详解
jvm·数据库·python
LiAo_1996_Y13 小时前
CSS如何实现文字渐变效果_通过background-clip实现艺术字
jvm·数据库·python
2401_8877245013 小时前
CSS如何让表单在手机端友好展示_利用Flexbox实现堆叠排版
jvm·数据库·python
zhangchaoxies13 小时前
Layui轮播图(carousel)怎么设置自动播放间隔
jvm·数据库·python
私人珍藏库13 小时前
[吾爱大神原创工具] QtScreenSwitcher[Win]一个现代化、极简、高颜值的多屏开关工具。
windows·工具·软件·win·多功能
FreakStudio13 小时前
无硬件学LVGL:基于Web模拟器+MiroPython速通GUI开发—布局与空间管理篇
python·单片机·嵌入式·面向对象·并行计算·电子diy
competes14 小时前
慈善基金投资底层逻辑应用 顶层代码低代码配置平台开发结构方式数据存储模块
java·开发语言·数据库·windows·sql
qq_3729069314 小时前
如何在 Vuetify 中可靠捕获 Chip 关闭事件(包括键盘触发)
jvm·数据库·python