Python环境变量设置与读取

news/2024/9/28 15:29:43

★ 环境变量基本概念

  • 环境变量定义
    	环境变量是操作系统中存储有关操作系统配置信息和应用程序运行环境的动态值的一种机制。环境变量的主要作用是为正在运行的进程提供配置信息,帮助程序找到所需的资源或者确定程序运行的方式。在操作系统中,每个进程都有自己的环境变量集合。这些变量可以包含诸如路径、临时文件位置、语言设定、用户偏好设置等信息。程序可以通过读取环境变量来获取这些信息,从而适应不同的操作系统环境或用户设置。
    
  • 作用
    	有些字符不宜明文写进代码里,比如数据库密码,个人账户密码,如果写进自己本机的环境变量里,程序用的时候通过 os.environ.get() 取出来就行了。这样开发人员本机测试的时候用的是自己本机的一套密码,生产环境部署的时候,用的是公司的公共账号和密码,这样就能增加安全性
    

★ 环境变量的设置

  • 方式一. 设置系统环境变量
    • 第一步 在我们的电脑上鼠标右键此电脑,选择属性,进去之后,点击高级系统设置

    • 第二步 点击环境变量

    • 第三步 编辑环境变量并保存

  • 方式二. 设置Pycharm环境变量
  • 方式三. 设置单个项目的环境变量
  • 方式四. 将环境变量按指定格式写入到文件(一般设置为隐藏格式如 .env)
    • 1.编辑环境变量文件 .env

      API_KEY=abcdef123456
      DEBUG=True
      MAX_CONNECTIONS=10
      
    • 2.加载环境变量文件

      • 使用 os.environ

        """
        在Python中,os.environ是一个字典,保存了当前进程的环境变量。我们可以使用os.environ来读取env文件中的配置参数
        """
        import os# 从.env文件中读取配置参数
        def read_env_by_file(file_path):with open(file_path, 'r') as file:for line in file:line = line.strip()if line and not line.startswith('#'):key, value = line.split('=')os.environ[key] = value# 示例:读取.env文件
        read_env_by_file('.env')# 使用配置参数
        api_key = os.environ.get('API_KEY')
        debug = os.environ.get('DEBUG')
        max_connections = os.environ.get('MAX_CONNECTIONS')print(f'API_KEY: {api_key}')
        print(f'DEBUG: {debug}')
        print(f'MAX_CONNECTIONS: {max_connections}')
      • 使用 python-dotenv

        """
        python-dotenv是一个非常流行的Python库,用于读取.env文件。相比于手动解析.env文件,使用python-dotenv更加简洁和易用
        """
        from dotenv import load_dotenv# 从.env文件中加载配置参数
        def read_env_by_file(file_path):load_dotenv(file_path)# 示例:加载.env文件
        read_env_by_file('.env')# 使用配置参数
        api_key = os.getenv('API_KEY')
        debug = os.getenv('DEBUG')
        max_connections = os.getenv('MAX_CONNECTIONS')print(f'API_KEY: {api_key}')
        print(f'DEBUG: {debug}')
        print(f'MAX_CONNECTIONS: {max_connections}')

★ 环境变量的读取

  • 读取环境变量所有key
    os.environ.keys() 
    
  • 环境变量常用key
    • Windows 系统

      os.environ['HOMEPATH']:当前用户主目录。
      os.environ['TEMP']:临时目录路径。
      os.environ["PATHEXT"]:可执行文件。
      os.environ['SYSTEMROOT']:系统主目录。
      os.environ['LOGONSERVER']:机器名。
      os.environ['PROMPT']:设置提示符。
      
    • Linux 系统

      os.environ['USER']:当前使用用户。
      os.environ['LC_COLLATE']:路径扩展的结果排序时的字母顺序。
      os.environ['SHELL']:使用shell的类型。
      os.environ['LAN']:使用的语言。
      os.environ['SSH_AUTH_SOCK']:ssh的执行路径。
      
  • 环境变量的增删改查
    # 新增环境变量
    os.environ['环境变量名称']='环境变量值' #其中key和value均为string类型
    os.putenv('环境变量名称', '环境变量值')
    os.environ.setdefault('环境变量名称', '环境变量值')#更新环境变量
    os.environ['环境变量名称']='新环境变量值'#获取环境变量
    os.environ['环境变量名称']
    os.getenv('环境变量名称')
    os.environ.get('环境变量名称', '默认值') # 删除环境变量
    del os.environ['环境变量名称']
    del(os.environ['环境变量名称'])# 判断环境变量是否存在
    '环境变量值' in os.environ   # 存在返回 True,不存在返回 False
    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

使用IDEA创建编写代码

使用IDEA创建编写代码 创建空项目文件夹选择Empty Project为工程文件夹命名选择文件夹创建路径点击Create创建Java工程模块 点击File->New->Module...选择Java,为工程文件命名,选择路径,点击Create。项目结构选择 点击File->Project Structure...SDK选择自己的JDK文…

SolidState 靶机 walkthrough

扫描 ┌──(root㉿kali)-[/home/kali] └─# nmap -T5 -A -v -p- 192.168.80.141 Starting Nmap 7.92 ( https://nmap.org ) at 2022-10-24 03:50 EDT NSE: Loaded 155 scripts for scanning. NSE: Script Pre-scanning. Initiating NSE at 03:50 Completed NSE at 03:50, 0…

测试一下编辑器

这是个1级🚗标题🙃 这是内容 这是2级标题 这是内容 插入一个图片任意修改字体的颜色使得文章内容更加多彩神奇 插入一段代码 #include <iostream> using namespace std;int main() {cout << "Hello World!";return 0; }🛴

1-部署LVS-NAT

1.部署LVS-NAT 部署LVS-NAT集群主机名 IP地址client eth0:192.168.4.10/24proxy eth1:192.168.2.5/24eth0:192.168.4.5/24web1 eth0:192.168.2.100/24web2 eth0:192.168.2.200/24客户端访问LVS调度器的外网IP(VIP),调度器根据算法选择后端的一台真实服务器,将数据请求包转发…

3-LVS工作模式

3.LVS工作模式 NAT TUN DRhttps://blog.csdn.net/weixin_40470303/article/details/80541639 NAT 1.LVS服务器配两块网卡,一块连公网与用户通信,一块连内网与集群通信 2.负载路由器充当网关 3.支持端口映射,后端真实服务器的地址可能不是80,而是8080 4.集群节点处于一个…

Mybatis之动态sql

当你在业务中有需要通过传过来的条件来进行sql查询的时候,之前的手动拼接既麻烦又容易出错,动态sql就可以根据场景动态的构建查询。常用的动态sql标签if标签 <select id="selectAllBlog" parameterType= "map" resultType="Blog"> sele…

m基于FPGA的MPPT最大功率跟踪算法verilog实现,包含testbench

1.算法仿真效果 其中Vivado2019.2仿真结果如下:使用matlab进行显示如下:2.算法涉及理论知识概要在太阳能光伏系统中,最大功率点跟踪(Maximum Power Point Tracking, MPPT)是提高能量转换效率的关键技术之一。爬山法(Hill Climbing Algorithm, HCA)作为最直观和基础的MPP…