Python 使用 configparser 库操作配置文件
目录
在写脚本的过程中无法避免的需要一些配置性的信息,但是又不想写死在 python 文件中,刚好 python 的 configparser 模块实现了以上的功能,可以用来操作 .ini 配置文件。
一、新建配置文件
在 python 项目中新建一个 conf 文件夹,并在此文件夹下创建一个 conf.ini 的文件用于存储配置信息。
文件路径:./conf/conf.ini
文件内容:
[EditionInfo]
version = 1.0.0
二、源码
import configparser
import os
import sys
def get_path(config_name):
"""获取路径 返回运行本函数的文件绝对路径+config_name
determine if application is a script file or frozen exe
"""
if getattr(sys, 'frozen', False):
application_path = os.path.dirname(sys.executable)
elif __file__:
application_path = os.path.dirname(__file__)
config_path = os.path.join(application_path, config_name)
return config_path
# 读取conf.ini
configPath = "conf\\conf.ini"
config = configparser.ConfigParser()
config.read_file(open(get_path(configPath), encoding='UTF-8'))
# 获取conf中的section
sections = config.sections()
# 获取第一个section中的所有option
paramList = config.options(sections[0])
# 修改version的值
config.set(sections[0], paramList[0], "1.0.1")
config.write(open(configPath, "w"))
# 获取version的值 方法1
version = str(config.get(sections[0], paramList[0]))
# 获取version的值 方法2
# version = str(config.get("EditionInfo", "version"))
print(version)
可能有心人会注意到 get_path 的方法有点怪异,那是因为在写 python 程序中,有可能需要获取当前运行脚本的路径。打包成 exe 的脚本和直接运行地脚本在获取路径上稍微有点不同。
get_path 的方法参考了这篇博客:https://www.cnblogs.com/pzxbc/archive/2012/03/18/2404695.html
REF
python中获取打包成执行文件(exe)和脚本运行文件的路径 :https://www.cnblogs.com/pzxbc/archive/2012/03/18/2404695.html