一、python程序已打包,发现又有变量等信息调整怎么办?
答:可以在给您写好的程序附带一个config.ini配置文件。配置文件中存入需要的变量,程序运行后优先读取配置文件信息,以初始化程序变量。如果程序变量需要调整,可直接以记事本形式打开配置文件并修改保存变量内容。程序重启,新变量内容就自动初始更新了。
二、为python程序建立配置文件
1.configparser模块的使用,写入文本到配置文件。
基础内容可参照:《python--读取config配置文件》(作者:九月的梦)、《python 读写ini文件》(作者:张小白9527)。
1.1 配置文件包含若干“section”,“section”下包含一或多条数据信息。用记事本打开,ini文件结构如下图展示:
1.2 可以使用如下程序结构:建立.py文件,并输入下方代码,建立并写入信息到配置文件,定义为写入函数。再建立读取函数。
import configparser # 导入configparser模块
def configfile_write(): # 定义config写入函数, 传入欲保存文件名及路径
# -------------- 引用configparser模块实例化出config对象。
config = configparser.ConfigParser()
# -------------- 写入section1: 系统版本
config['系统版本'] = {'version':'***系统 v1.2'}
# -------------- 写入section2: 身份信息
config['身份信息'] = {
'身份信息' : ['姓名、出生地、国籍、籍贯、民族、身份证号、职业'],
'学历水平' : '硕士研究生'
}
with open('new.ini', 'w') as configfile:
config.write(configfile)
def configfile_read(): # 定义配置文件读取函数
# -------------- 实例化config对象
config = configparser.ConfigParser()
# -------------- 读取config对象
config.read('new.ini')
read_ID = config.get('身份信息', '身份信息') # 期望读出个列表类型的数据:['姓名、出生地、国籍、籍贯、民族、身份证号、职业']
print('读取到变量的值是:', read_ID)
print('读取出数据的类型是:', type(read_ID))
if __name__ == '__main__': # 程序入口
configfile_write() # 创造配置文件,并写入配置信息
configfile_read() # 读取配置信息
正如上方代码段:config['系统版本‘]、config[’身份信息‘]就是配置文件的section。每个section中都有相应数据。请注意:'身份信息' : ['姓名、出生地、国籍、籍贯、民族、身份证号、职业'],我存入一个列表。但终端显示读取到的数据为字符串类型:“['姓名、出生地、国籍、籍贯、民族、身份证号、职业']”,整个长串是个字符串而不是预想的列表类型。
![]()
2. 处理读取出来的字符串:建立列表生成函数,read_ID为读取出来的字符串,依次处理并赋值给变量value,最后用“,”分割文件。“.split()”方法返回列表类型数据。
def value_list_generating(): # configfile中读出的全为字符串类型,需要替换字符串中的特殊字符如“[”、“'”、“]”,然后重新生成列表类型。
value = read_ID.replace("[", '') # 先替换所有的“[”为空,赋值给value
value = value.replace("'", '') # 再替换所有的“'”为空,再赋值给value
value = value.replace("]", '') # 再替换所有的“]”为空,再赋值给value
value = value.replace(" ", '') # 再替换所有的空格为空,再赋值给value,至此字符串内特殊字符已全部删除
value = value.split(',') # 用“,”分割字符串,返回列表类数据。
print(value, type(value))
如上字符串已经被处理成为列表了。可以将本列表读入主程序中。
三、总结
1. config配置文件中的数据以字符串形式储存。读取出来也是字符串。
2. 若需要提取到列表类型数据,需要玩“文字游戏”--使用字符串的“.replace()”、“.split()”方法。关于字符串方法可参照:《python字符串常用方法及汇总》(作者:闲鱼!!!)。
----完结,多谢读阅----
本文介绍如何通过Python的configparser模块创建和管理配置文件,解决程序变量调整问题,包括配置文件的结构、读写操作和处理字符串转列表的方法。
3232

被折叠的 条评论
为什么被折叠?



