Python:从特定的 .env 文件获取 env 变量的值

swe*_*123 8 python environment-variables python-os

在 python 中,有没有办法从特定的 .env 文件中检索 env 变量的值?例如,我有多个 .env 文件,如下所示:

.env.a .env.a ...

我在 .env.b 中有一个名为 INDEX=4 的变量。

我尝试通过执行以下操作来接收 INDEX 的值:

import os

os.getenv('INDEX')
Run Code Online (Sandbox Code Playgroud)

但这个值返回None。

有什么建议么?

bfr*_*ris 8

这是ConfigParserConfigObj的工作。ConfigParser 内置于 Python 标准库中,但有一个缺点,即它确实需要节名称。以下是针对Python3的。如果您仍在使用Python2,那么使用import ConfigParser

import configparser
config = configparser.ConfigParser()
config.read('env.b')
index = config['mysection']['INDEX']
Run Code Online (Sandbox Code Playgroud)

其中 ConfigParser 的 env.b 是

[mysection]
INDEX=4
Run Code Online (Sandbox Code Playgroud)

并使用 ConfigObj:

import configobj
config = configobj.ConfigObj('env.b')
index = config['INDEX']
Run Code Online (Sandbox Code Playgroud)

其中 ConfigObj 的 env.b 是

INDEX=4
Run Code Online (Sandbox Code Playgroud)


小智 8

Python 有一个名为 python-dotenv 的特定包来使用 .env 文件中存储的密钥。以下是我们如何在 .env 文件中使用密钥。首先,在 .env 文件中创建一个像这样的密钥

demokey=aaa2134
Run Code Online (Sandbox Code Playgroud)

要在 python 文件中加载此密钥,我们可以使用以下代码:

from dotenv import load_dotenv
load_dotenv()
import os
x = os.getenv("demokey")
print(x)
Run Code Online (Sandbox Code Playgroud)

在 Python 3.x 中,因为它本身不可用

pip install python-dotenv
Run Code Online (Sandbox Code Playgroud)