configparser模块中列表型数据的读取方式之一:字符处理

本文介绍如何通过Python的configparser模块创建和管理配置文件,解决程序变量调整问题,包括配置文件的结构、读写操作和处理字符串转列表的方法。
部署运行你感兴趣的模型镜像

一、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字符串常用方法及汇总》(作者:闲鱼!!!)。

----完结,多谢读阅----

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值