从配置文件Python读取值

kyo*_*kyo 1 python configuration environment-variables

我的文件.env文件包含5行

DB_HOST=http://localhost/
DB_DATABASE=bheng-local
DB_USERNAME=root
DB_PASSWORD=1234567890
UNIX_SOCKET=/tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)

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


我会用

import linecache
print linecache.getline('.env', 2)
Run Code Online (Sandbox Code Playgroud)

但是有些人可能会更改cofigs的顺序,这就是为什么行缓存不是我的选择。


我不确定如何只检查某些字符串,但要检查整行,并在后面获取值=

我有点卡在这里:

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
Run Code Online (Sandbox Code Playgroud)

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

小智 6

将您的 .env 修改为

[DB]
DB_HOST=http://localhost/
DB_DATABASE=bheng-local
DB_USERNAME=root
DB_PASSWORD=1234567890
UNIX_SOCKET=/tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)

Python代码

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

输出:

本地

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


yar*_*yar 5

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

比自制的解决方案更优雅