从配置文件 Python 中读取值

新手上路,请多包涵

我有一个文件 .env 文件包含 5 行

DB_HOST=http://localhost/
DB_DATABASE=bheng-local
DB_USERNAME=root
DB_PASSWORD=1234567890
UNIX_SOCKET=/tmp/mysql.sock

我想写 python 来获取 DB_DATABASE 的值我想要这个 bheng-local


我会用

import linecache
print linecache.getline('.env', 2)

但是有些人可能会改变配置的顺序,这就是为什么我不选择 linecache 的原因。


我不确定如何只检查一些字符串匹配但整行都匹配,并在 = 之后获取值。

我有点被困在这里:

 file = open('.env', "r")
read = file.read()
my_line = ""

for line in read.splitlines():
    if line == "DB_DATABASE=":
        my_line = line
        break
print my_line

有人可以在这里给我一点推动吗?

原文由 code-8 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 500
2 个回答

查看配置解析器: https ://docs.python.org/3/library/configparser.html

它比自制的解决方案更优雅

原文由 yar 发布,翻译遵循 CC BY-SA 3.0 许可协议

将您的 .env 修改为

[DB]
DB_HOST=http://localhost/
DB_DATABASE=bheng-local
DB_USERNAME=root
DB_PASSWORD=1234567890
UNIX_SOCKET=/tmp/mysql.sock

Python代码

#!/usr/local/bin/python
import configparser
config = configparser.ConfigParser()
config.read('test.env')
print config.get('DB','DB_DATABASE')

输出:

bheng-本地

阅读 https://docs.python.org/3/library/configparser.html

原文由 Sridhar Iyer 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题