首页 > 编程语言 >Python环境变量设置与读取

Python环境变量设置与读取

时间:2024-05-11 16:19:22浏览次数:15  
标签:key file 读取 Python environ env os 环境变量

★ 环境变量基本概念

  • 环境变量定义
    	环境变量是操作系统中存储有关操作系统配置信息和应用程序运行环境的动态值的一种机制。环境变量的主要作用是为正在运行的进程提供配置信息,帮助程序找到所需的资源或者确定程序运行的方式。
    	在操作系统中,每个进程都有自己的环境变量集合。这些变量可以包含诸如路径、临时文件位置、语言设定、用户偏好设置等信息。程序可以通过读取环境变量来获取这些信息,从而适应不同的操作系统环境或用户设置。
    
  • 作用
    	有些字符不宜明文写进代码里,比如数据库密码,个人账户密码,如果写进自己本机的环境变量里,程序用的时候通过 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
    

标签:key,file,读取,Python,environ,env,os,环境变量
From: https://www.cnblogs.com/cs-songbai/p/18186707

相关文章

  • python教程11-面向对象
    python的面向对象和java有一些不一样:(java中,只有在类中定义的变量实例才能用,但是python更加灵活)类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实......
  • python利用魔塔大模型生成视频
    安装依赖参考上篇文章https://www.cnblogs.com/qcy-blog/p/18186353新建main.pyfrommodelscope.pipelinesimportpipelinefrommodelscope.outputsimportOutputKeysp=pipeline('text-to-video-synthesis','damo/text-to-video-synthesis')test_text={......
  • python用魔塔大模型生成国画
    模型地址https://www.modelscope.cn/models/langboat/Guohua-Diffusion/summary新建一个main.pyfrommodelscope.utils.constantimportTasksfrommodelscope.pipelinesimportpipelineimportcv2pipe=pipeline(task=Tasks.text_to_image_synthesis,......
  • PikaScript - 面向嵌入式的超轻量级python引擎+Ring-Buffer - 仅80行代码的超简洁环形
    1、PikaScript-面向嵌入式的超轻量级python引擎PikaScript(前称mimiscript)是一个完全重写的超轻量级python引擎,零依赖,零配置,可以在少于4KB的RAM下运行(如stm32g030c8和stm32f103c8),极易部署和扩展。项目地址:https://github.com/pikasTech/pikascriptPikaScript是使用c语言写......
  • Python-PostgreSQL主键自动填充报错:SAWarning: Column x is marked as a member of th
    importdatetimefromsqlalchemyimportColumn,String,inspect,Integerfromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemy.ormimportsessionmakerfromsqlalchemyimportcreate_engineengine=create_engine(DATABASE_URL)Base=decla......
  • python-类型提示(type hinting)
    类型提示在Python3.5及更高版本中引入,能够让代码更具可读性和可维护性,并帮助静态类型检查工具进行代码分析。以下是关于类型提示的一些详细介绍和示例:类型提示概述基本语法:函数参数类型提示:deffunction_name(param:type)->return_type:返回值类型提示:deffunction_na......
  • 华为云发布CodeArts IDE for Python,极致优雅云原生开发体验
    近日,华为云正式发布CodeArtsIDEforPython,这是一款内置华为自主创新的Python语言服务,提供智能编程、灵活调试能力的可扩展桌面开发工具,为华为云开发者提供卓越Python编码体验。Python作为一种编程语言,广泛用于Web应用程序、软件开发、数据科学和机器学习(ML)。Python以其优......
  • 逻辑斯特回归原理及Python实现
    逻辑回归(LogisticRegression),又称为logistic回归分析,是一种广义的线性回归模型,通常用于解决分类问题。虽然名字里有“回归”,但实际上它属于机器学习中的监督学习方法。逻辑回归最初用于解决二分类问题,它也可以通过一些技巧扩展到多分类问题。在实际应用中,我们通常使用给定的训......
  • installshield 安装jdk并配置环境变量
    今天来通过installshield安装jdk以及配置环境变量,本质上是调用第三方安装程序。首先将jdk的安装文件添加到我们的安装程序中然后编写我们的脚本选择BEHAVIORANDLOGIC->InstallScript->Setup.Rul->AfterMoveData->OnFirstUIAfter,如图OnFirstUIAfter脚本如下点击查看代......
  • 《最新出炉》系列入门篇-Python+Playwright自动化测试-46-鼠标滚轮操作
    1.简介有些网站为了节省流量和资源,提高加载效率,采用的是动态加载(懒加载)的,也就是当拖动页面右侧滚动条后会自动加载网页下面的内容,不拖动就不会加载的或者通过鼠标滚轮操作。2.wheel模拟鼠标滚动wheel模拟鼠标滚动,就是通过调度一个wheel事件。(滚轮事件如果不处理可能会导致滚动,......