在Python
程序的编写中,我们经常要为程序配置一个配置文件
,有了配置文件,可以记录一些应用的参数配置,方便下次使用时直接调用。
那么如何为自己的Python
应用制作一个配置文件并方便的使用呢?这篇博文就是用来讨论这个简单的问题的。
本博文仅为作者对配置文件使用的一些见解,错误难免,如有问题请指教。
相关链接: PythonINI配置文件读写的简单方法
本文重点讨论如何在程序中使用配置文件,ConfigParser
类的具体使用,请参考上文。
前一阵子做了个口算题的生成的应用,但是每次打开应用时都是加载的程序默认的参数,非常不方便,所以就要考虑为程序添加一个配置文件。 具体需求如下:
先上一个配置文件的工作流程图
通过流程图我们可以总结出配置文件类中需要的方法:
首先导入必须的包:
import os
from configparser import ConfigParser
然后确定ini配置文件的物理位置,这里可以引用Django
配置文件加载的方法。
#ini程序所在目录,也是当前程序的根目录
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
#INI文件地址
INI_PATH = os.path.join(BASE_DIR, 'config.ini')
若程序是首次启动,可以判断配置文件ini是否存在,若不存在可以创建一个带有默认数据参数的配置文件。
为类添加一个方法def create_ini(self)
,此方法用来创建配置文件ini。
当在类启动方法中创建了ConfigParser
对象后,就可以利用这个对象来编辑修改配置文件了。
若文件存在,即可直接加载了。
def readINI(self):
""" ini文件读取,返回一个INI配置对象
或是用来更新内存中的配置文件数据
"""
self.c.read(self.INI_PATH, encoding='utf-8')
创建一个方法,用来读取配置文件,因为在程序运行中需要随时加载更新内存中的参数,所以弄个方法存在也是必要的。
有读取了,我们还需要保存参数到配置文件里,在建一个保存的方法:
def saveINI(self):
'''保存或是更新ini文件'''
with open(self.INI_PATH, mode='w', encoding='utf-8') as ini:
self.c.write(ini)
这样,只要修改了参数,结尾就可以调用这个方法来保存配置文件。
为每一个参数指定一个方法,用来修改并保存当前参数到配置文件,当触发需要修改参数的事件是,直接调用当前方法即可修改配置文件里对应的参数了。
范例:
def saveNumber(self,number):
'''保存口算题个数设置数据'''
self.c.set('config','number',number)
self.saveINI()
当创建完ConfigParser
对象后,就可以使用该对象方便的操作配置文件的读取和保存了,具体方法这里不再敷衍,可以参考PythonINI配置文件读写的简单方法
也可以单独建立一个方法,用来返回一组数据供程序的功能使用。
有关配置文件的讨论就到此为止,以上也只是自己的一些浅显理解,详细代码请参考以下源码。