Python中如何使用dotenv库设置本地.env文件的环境变量?
问题原因
你调用的python-dotenv库的load_dotenv()方法仅负责将磁盘上.env文件已有的键值对加载到当前Python进程的运行时环境变量中,本身不具备修改、回写磁盘文件的能力。你通过os.environ['ORI'] = '123'修改的仅为当前进程内存中存储的临时环境变量,进程终止后就会失效,完全不会写入到磁盘的.env文件,所以打开文件看到为空是正常现象。
解决方案
如果需要将键值对持久化写入.env文件,可直接通过Python原生文件操作实现,示例代码如下:
import os from os.path import join, dirname from dotenv import load_dotenv dotenv_path = join(dirname(__file__), '.env') # 加载现有变量到运行时环境 load_dotenv(dotenv_path) # 先修改运行时环境变量 os.environ['ORI'] = '123' # 持久化写入到.env文件,a模式是追加保留原有内容,w模式是覆盖原有内容,按需选择 with open(dotenv_path, 'a', encoding='utf-8') as f: f.write(f'ORI={os.getenv("ORI")}\n')
注意事项
- 如果要避免同一个key重复写入,可先读取
.env现有内容去重、更新对应key的取值后再整体写入 - 不要将数据库密码、API密钥等敏感信息硬编码在代码逻辑中,避免信息泄露
内容的提问来源于stack exchange,提问作者Roso Bergman
相关产品推荐
相关产品推荐

