[英]Read Value from Config File 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
有人可以在這里給我一點推動嗎?
看看配置解析器: https : //docs.python.org/3/library/configparser.html
它比自制的解決方案更優雅
將您的 .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')
輸出:
本地
這應該適合你
#!/usr/local/bin/python
file = open('test.env', "r")
read = file.read()
for line in read.splitlines():
if 'DB_DATABASE=' in line:
print line.split('=',1)[1]
#!/usr/local/bin/python
from configobj import ConfigObj
conf = ConfigObj('test.env')
print conf['DB_DATABASE']
from os import environ, path
from dotenv import load_dotenv
basedir = path.abspath(path.dirname(__file__))
load_dotenv(path.join(basedir, '.env'))
DB_DATABASE = environ.get('DB_DATABASE')
print(DB_DATABASE)
這可能是另一種選擇
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.