首先直接上完整代码,详细解释请看下面:
PS:大佬们请直接忽略本篇文章,写的很简单,主要是想记录下,免得自己忘了,下次还得百度一遍,emmmmmm,如果哪里有问题,请评论区喷我~~O(∩_∩)O哈哈哈
.ini配置文件示例:
[local]#这是section
host=127.0.0.1#这是key
port=3306
password=123456
user=root
[demo]
host="xxx.mysql.rds.aliyuncs.com"
user = "xxx"
password ="xxx"
port=3306
#根据section和key可以唯一找到一条记录,section,key都可以存在多条
python2:
import ConfigParser
import os
def get_conf(section, key, setting):
conf_file = ConfigParser.ConfigParser()
conf_file.read(os.path.join(os.getcwd(), 'conf.ini'))
res = conf_file.get(section, key)
python3
import configparser
import os
class ReadDBConf:
conf = configparser.ConfigParser()
cur_path = os.path.dirname(os.path.realpath(__file__))+'/db.ini' #此处db.ini前面的 / 很重要不要漏掉
conf.read(cur_path)
host = conf.get('demo','host')
1.导包差异
在python3中导包
import configparser
python2则是
import ConfigParser
2.read()方法使用差异,请仔细看前面的代码
3.相同的地方
.ini格式的文件必须和相应.py文件在同一个包下面,原因在于read()方法接收的是一个.ini文件的绝对路径,不支持相对路径,注意获取的是配置文件的绝对路径,而不是程序运行时路径,程序入口不同时,运行时路径不同。例如下图
image.png
4.在.py文件中要获取到当前包所在的路径然后拼接上.ini文件名,获取路径需要先导入:
import os
python3代码:
cur_path = os.path.dirname(os.path.realpath(__file__))+'/db.ini'
python2代码:
cur_path = os.path.join(os.getcwd(), 'conf.ini')
网友评论