在 Python 脚本中设置环境变量

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


我们如何使用环境变量

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

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

new.py:

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

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

键和变量

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

new.py:

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

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

一个值的键和变量

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

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

new.py:

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

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

设置环境变量

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

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


在 Python 中设置环境变量

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


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

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

new.py:

import os
os.environ["USERNAME"] = "python"print(os.environ["USERNAME"])

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

设置操作系统环境

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

new.py:

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

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

new2.py:

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

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

改变环境变量


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

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

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

new.py:

import osif 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 方法分配一个新变量。

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

使用 os 默认值设置变量


总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/162709.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6 个可解锁部分 GPT-4 功能的 Chrome 扩展(无需支付 ChatGPT Plus 费用)

在过去的几个月里,我广泛探索了 ChatGPT 的所有可用插件。在此期间,我发现了一些令人惊叹的插件,它们改进了我使用 ChatGPT 的方式,但现在,我将透露一些您需要了解的内容。 借助 Chrome 扩展程序,所有 Chat…

Windows:VS Code IDE安装ESP-IDF【保姆级】

物联网开发学习笔记——目录索引 Visual Studio Code(简称“VS Code”)是Microsoft向开发者们提供的一款真正的跨平台编辑器。 参考: VS Code官网:Visual Studio Code - Code Editing. Redefined 乐鑫官网:ESP-IDF…

分类算法-逻辑回归与二分类

1、逻辑回归的应用场景 广告点击率是否为垃圾邮件是否患病金融诈骗虚假账号 看到上面的例子,我们可以发现其中的特点,那就是都属于两个类别之间的判断。逻辑回归就是解决二分类问题的利器。 2、 逻辑回归的原理 2.1 输入 逻辑回归的输入就是一个线性…

python二次开发CATIA:CATIA Automation

CATIA 软件中有一套逻辑与关系都十分严谨的自动化对象,它们从CATIA(Application)向下分支。每个自动化对象(Automation Object,以下简称Object)都有各自的属性与方法。我们通过程序语言调用这些 Object 的属性与方法,便…

C语言 内存

内存分配 内存分配的类型 C/C中内存分为5个区,分别为栈区、堆区、全局/静态存储区、常量存储区、代码区 静态内存分配:编译时分配,包括全局、静态全局、静态局部三种变量。 动态内存分配:运行时分配,包括栈&#x…

SVM支持向量机

定义 支持向量机(SVM),Supported Vector Machine,基于线性划分,输出一个最优化的分隔超平面,该超平面不但能将两类正确分开,且使分类间隔(margin)最大 **所有训练数据点距离最优分类超平面的距离都要大于支持向量距离…

【docker】查看容器日志

目录 一.通过查找宿主机日志路径,通过Linux命令查看即可。 1.1 查看容器日志路径 1.2 按照日志路径检索日志 二、通过docker命令检索日志 2.1 查看指定时间后的日志,只显示最后20行 2.2 查看最近10分钟的日志 2.3 查看某时间段之后的日志 2.4 查…

SpringCloud-Nacos

一、介绍 (1)作为服务注册中心和配置中心 (2)等价于:EurekaConfigBus (3)nacos集成了ribbon,支持负载均衡 二、安装 (1)官网 (2) …

【算法设计zxd】第6章 回溯法

目录 6.1 回溯法的设计技术 : 四皇后问题 回溯法: 算法框架: 思考题: 回溯算法的适用条件 【例6-1】求满足下列不等式的所有整数解: 6.2回溯算法的经典例题 【例6-2】装载问题  问题分析 计算模型  算法设计与描…

网络安全常见问题隐患及其应对措施

随着数字化时代的到来,网络安全已经成为组织和个人面临的严重挑战之一。网络攻击日益普及,黑客和不法分子不断寻找机会侵入系统、窃取敏感信息、破坏服务和网络基础设施。在这种情况下,了解网络安全的常见问题隐患以及如何应对它们至关重要。…

Golang学习:基础知识篇(三)—— Map(集合)

Golang学习:基础知识篇(三)—— Map集合 前言什么是Golang?Map集合定义 Map综合实例补充 前言 很久之前就想学Go语言了,但是一直有其他东西要学,因为我学的是Java嘛,所以后面学的东西一直是跟J…

机器学习基础之《回归与聚类算法(3)—线性回归优化:岭回归》

一、什么是岭回归 其实岭回归就是带L2正则化的线性回归 岭回归,其实也是一种线性回归。只不过在算法建立回归方程时候,加上L2正则化的限制,从而达到解决过拟合的效果 二、API 1、sklearn.linear_model.Ridge(alpha1.0, fit_interceptTrue…

使用UniApp实现视频数组自动下载与播放功能:一步步指导

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

5分钟内在Linux上安装.NET Core应用程序

作为开源的忠实粉丝,我喜欢 .NET Core 的跨平台特性。它开启了无限的可能性,从业余爱好项目、实验和概念验证,到在具有高安全性和可扩展性的经济高效基础设施上运行的大规模高负载生产应用程序。我通常从任何云平台提供商那里获得最简单、最便…

Java:SpringBoot整合Spring Batch示例

目录 文档基础概念Tasklet方式示例Chunk方式示例参考文章 文档 https://docs.spring.io/spring-batch/docs/4.3.9/reference/html/index.html 基础概念 JobLauncher:作业启动器,启动作业的入口。对应的实现类为SimpleJobLauncher。Job:作业…

上海亚商投顾:沪指震荡调整跌 减肥药、华为概念股持续活跃

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 沪指上个交易日低开后震荡调整,深成指、创业板指盘中跌超1%,宁德时代一度跌超3%&#xff…

apk和小程序渗透

apk和小程序域服务器通信使用的还是http协议,只是使用了加密。只要可以获取到http的请求报文,就可以回归到web渗透的层面。apk和小程序的渗透很复杂,涉及逆向时要进行脱壳,脱壳后反编译了,源代码没做加密就能直接逆向出…

华为eNSP配置专题-NAT的配置

文章目录 华为eNSP配置专题-NAT的配置0、参考文档1、前置环境1.1、宿主机1.2、eNSP模拟器 2、基本环境搭建2.1、基本终端构成和连接2.2、各终端基本配置2.2.1、PC1和PC2的配置2.2.2、交换机不做任何配置2.2.3、网关路由器的配置2.2.4、模拟互联网的路由器的配置 3、配置静态NAT…

代码随想录第四十三天|343. 整数拆分 ● 96.不同的二叉搜索树

343.整数拆分 题目: 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2 输出: 1 解释: 2 1 1, 1 1 1。 示例 2: 输入: 10 输出: 36 解释: 10 3 3 4, 3 3 4 …

强化学习 | 强化学习基础知识(图解)

强化学习是机器学习的一个领域。它是关于在特定情况下采取适当的行动来最大化奖励。它被各种软件和机器用来找到在特定情况下应该采取的最佳行为或路径。强化学习与监督学习的不同之处在于,在监督学习中,训练数据具有答案键,因此模型本身使用…