Python配置文件处理的方法教程


Posted in Python onAugust 29, 2019

前言

在平时的工程中,我们在构建工程时,常常需要用到配置文件,用来配置项目的一些信息,比如数据库,请求网址,文件夹,线程、进程数等信息,这样就可以方便我们通过修改配置文件中的参数来很好地完成整个项目的功能修改或开发。配置文件一般区别于Python代码,会单独存放在一个文件夹中,方便管理,常见的配置文件格式有.conf, .ini, .yaml等。

本文使用Python中的configparser模块来处理conf、ini配置文件。

首先需要安装configparser模块,命令如下:

pip3 install configparser

我们以下面的具体工程为例,来讲述如何使用Python如何工程中的配置文件,项目结构如下图:

Python配置文件处理的方法教程

该项目中只有两个文件,一个为mysql.conf,是MySQL的连接配置;另一个是Python代码,用于读取某张表的具体内容。

其中mysql.conf文件的内容如下:

[mysql]
db_host=localhost
db_port=3306
db_user=root
db_password=
db_database=school

里面的[mysql]是select,类似于HTML中的select(下拉菜单),下面的几行为option,规定了数据库的连接信息,包括host、port、user、password以及database。

接着是mysql_test.py,完整的代码内容如下:

# -*- coding:utf-8 -*-
# time: 2019-08-28
# place: Daxing Beijing

from configparser import ConfigParser
import pymysql

cp = ConfigParser()
cp.read('mysql.conf')

host = cp.get("mysql", "db_host")
port = cp.getint("mysql", "db_port")
user = cp.get("mysql", "db_user")
password = cp.get("mysql", "db_password")
database = cp.get("mysql", "db_database")

# 打开数据库连接
db = pymysql.connect(host=host,
           port=port,
           user=user,
           password=password,
           db=database
           )

# 使用cursor()方法创建一个游标对象: cursor
cursor = db.cursor()

# 使用execute()方法执行SQL语句并输出结果
cursor.execute("select * from employee")

for row in cursor.fetchall():
  print(row)

# 关闭游标对象
cursor.close()

# 关闭数据库连接
db.close()

在该文件中,我们使用configparser模块解析出mysql.conf文件中MySQL数据库的连接方式,并使用pymysql模块获取school数据库中employee表的全部数据。输出的结果如下:

('mac', 'mohan', 20, 'm', 2000.0, datetime.date(2019, 9, 1))
('alex', 'ben', 24, 'f', 2500.0, datetime.date(2012, 8, 9))

让我们看一眼MySQL中这张表的内容,如下图:

Python配置文件处理的方法教程

以上为示例项目的演示内容。

使用配置文件,在工程的构建中,无疑是重要且方便的,因此,在实际的工程实践中,也应该多多使用配置文件,希望本文的内容能对大家的工作有所帮助~

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python实现简单的TCP代理服务器
Oct 08 Python
Python中decorator使用实例
Apr 14 Python
python中快速进行多个字符替换的方法小结
Dec 15 Python
python3.4下django集成使用xadmin后台的方法
Aug 15 Python
python中(str,list,tuple)基础知识汇总
Feb 20 Python
Flask之flask-script模块使用
Jul 26 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
Aug 26 Python
解决pyqt5异常退出无提示信息的问题
Apr 08 Python
使用IPython或Spyder将省略号表示的内容完整输出
Apr 20 Python
浅谈keras2 predict和fit_generator的坑
Jun 17 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
Dec 17 Python
浅谈django url请求与数据库连接池的共享问题
Aug 29 #Python
python 进程的几种创建方式详解
Aug 29 #Python
python 列表推导式使用详解
Aug 29 #Python
django 数据库连接模块解析及简单长连接改造方法
Aug 29 #Python
解决Django连接db遇到的问题
Aug 29 #Python
Python pandas实现excel工作表合并功能详解
Aug 29 #Python
python openCV获取人脸部分并存储功能
Aug 28 #Python
You might like
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
php 猴子摘桃的算法
2017/06/20 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
2007/11/30 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
Javascript学习笔记之相等符号与严格相等符号
2014/11/23 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
vue以组件或者插件的形式实现throttle或者debounce
2019/05/22 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
[38:31]完美世界DOTA2联赛PWL S3 Magma vs GXR 第一场 12.13
2020/12/17 DOTA
python 识别图片中的文字信息方法
2018/05/10 Python
python读取和保存图片5种方法对比
2018/09/12 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
Python generator生成器和yield表达式详解
2019/08/08 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
jupyter notebook oepncv 显示一张图像的实现
2020/04/24 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
英文自荐信
2013/12/19 职场文书
教师评优事迹材料
2014/01/10 职场文书
新学期校长寄语
2014/01/18 职场文书
乡镇纠风工作实施方案
2014/03/22 职场文书
圆明园纪录片观后感
2015/06/03 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python
Java Redisson多策略注解限流
2022/09/23 Java/Android