目录

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