当前位置: 首页 > news >正文

浅谈Python中的os.environ:环境变量交互机制

什么是 os.environ

os.environ 是 Python 提供的一个 “环境变量字典”,它包含了当前操作系统环境变量的全部信息。

  • Python 的 os 模块 提供。
  • 本质上是一个特殊的 字典(os._Environ 对象),键是环境变量名称,值是对应的字符串。

1. 我们可以把 os.environ 理解为:

“当前 Python 进程启动时,继承自操作系统环境变量的映射表”。

当我们在 Python 中访问:

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

获取到的就是 系统环境变量 PATH 的值

2. 常见用法示例

访问环境变量:

import osprint(os.environ['PATH'])  # 访问 PATH 环境变量
print(os.environ.get('PYTHONPATH'))  # 安全访问,若没有返回 None

设置/修改环境变量(仅当前进程有效):

os.environ['MY_VAR'] = 'HelloWorld'
print(os.environ['MY_VAR'])  # HelloWorld

删除某个环境变量(仅当前进程有效):

del os.environ['MY_VAR']

遍历所有环境变量:

for key, value in os.environ.items():print(f"{key} = {value}")

3. os.environ 的特性

特性说明
表现为字典类型 (os._Environ)类似普通dict,但是受操作系统影响的特殊对象
只影响当前Python进程我们通过 os.environ 修改的环境变量,不会影响系统/终端/其他程序
启动时从系统环境变量中继承Python 启动时,会读取操作系统环境变量,填充 os.environ
不会写入到系统永久环境变量想要永久生效需要到操作系统环境变量中配置(如Windows环境变量配置界面)

4. os.environ 修改只对当前进程有效

例如:

import osos.environ['MY_VAR'] = 'Python'
print(os.environ['MY_VAR'])  # Python# 关闭Python后再运行 CMD: echo %MY_VAR%  -> 没有这个变量
  • 我们用 os.environ 设置的变量只存在于当前Python进程的内存空间
  • 不会反向修改操作系统全局的环境变量

5. PYTHONPATH 与 os.environ 的关系

  • 当我们设置了 系统环境变量 PYTHONPATH,Python 启动时会自动将其加入 os.environ['PYTHONPATH']

  • 我们也可以在Python代码里动态设置 PYTHONPATH:

    os.environ['PYTHONPATH'] = '/my/custom/path'
    

    但这只影响当前Python进程的 sys.path 初始化,并不会改变系统环境变量。

6. 总结一句话

os.environ 就是Python程序用来“读取与操作环境变量”的窗口。它是Python对操作系统环境变量的一个实时映射(当前进程范围内)。

http://www.dtcms.com/a/312692.html

相关文章:

  • Uniapp一根数据线实现真机调试运行【uniapp如何把项目运行在手机上】
  • io_submit系统调用及示例
  • 基于springboot的在线考试系统/考试信息管理平台
  • Suno的100个高质量歌词元标签(MetaTags)详解与使用指南
  • SpringBoot3.x入门到精通系列:2.4 RESTful API设计
  • 电脑声音标志显示红叉的原因
  • Spring Batch的2种STEP定义方式
  • spring-ai-alibaba 学习(二十)——graph之检查点
  • VUE2 学习笔记16 插槽、Vuex
  • 大屏项目展示
  • python学智能算法(三十一)|SVM-Slater条件理解
  • 【MySQL进阶】------MySQL程序
  • 全排列二(回溯算法)
  • 位图:用bit改变存储格局
  • Linux 文件与目录操作命令宝典
  • Apache Shenyu 本地启动及快速入门
  • 【Bluetooth】【基础篇】第二章 关于蓝牙协议栈架构与其硬件方案架构大致概述
  • 【JS】JavaScript中的this详解
  • Android 优化 - 日志 Log
  • LeetCode513:找树最左下角的值(bfs+dfs)
  • 【鸿蒙高级】
  • [硬件电路-148]:数字电路 - 什么是CMOS电平、TTL电平?还有哪些其他电平标准?发展历史?
  • 动感按钮:如何打造交互感十足的点击动画效果
  • 【1】WPF界面开发入门—— 图书馆程序:登录界面设计
  • 基于图像识别与分类的中国蛇类识别系统
  • [硬件电路-151]:数字电路 - 模拟电路与数字电路的本质
  • 【数据结构】二叉树的顺序结构实现
  • SQL注入SQLi-LABS 靶场less31-38详细通关攻略
  • 托福阅读38-3
  • 使用AssemblyAI将音频数据转换成文本