• Python基础之读取ini文件


    基本使用方法

    第一步:准备一份INI文件。如test1.ini

    [ITEMS]
    item1=1
    item2=2
    item3=3
    item4=4
    
    [ITEM1]
    test1=aaa
    
    [ITEM2]
    test2=bbb
    
    [ITEM3]
    test3=ccc
    
    [ITEM4]
    test4=ddd
    View Code

    第二步:读取INI文件内容。ReadINI.py

    #!/usr/bin/env python
    # _*_ coding: UTF-8 _*_
    """=================================================
    @Project -> File    : six-dialog_design -> ReadINI.py
    @IDE     : PyCharm
    @Author  : zihan
    @Date    : 2020/6/2 14:35
    @Desc    :
    ================================================="""
    import configparser
    
    conf = configparser.ConfigParser()
    conf.read("./test1.ini")
    
    sections = conf.sections()
    print(sections)
    
    options = conf.options('ITEMS')
    print(options)
    
    items = conf.items('ITEMS')
    print(items)
    
    value = conf.get('ITEMS', 'item1')
    print(value)
    View Code

    第三步:输出结果

    ['ITEMS', 'ITEM1', 'ITEM2', 'ITEM3', 'ITEM4']
    ['item1', 'item2', 'item3', 'item4']
    [('item1', '1'), ('item2', '2'), ('item3', '3'), ('item4', '4')]
    1

    总结:第一个是获取所有的section,第二个是获取当前section下面的key,第三个是获取当前section下面的键值对,第四个是获取相应section,key的值。

    问题解决

    1. INI文件有中文

    如果ini文件里面有中文的话,可能会报如下错误

    UnicodeDecodeError: 'gbk' codec can't decode byte 0x87 in position 18: illegal multibyte sequence

    解决办法:conf.read("./test1.ini", encoding="utf-8")

    当然,是否填的是utf-8得自己试试,没准gbk啥的。

    2. INI中的key读取出来都是小写

    如果自己写的key并不全是小写,但是使用这个库将自己的库读出来,会发现打印出来的全是真实key的小写

    解决办法:重写configparser库

    class MyConfigParser(configparser.ConfigParser):
        def __init__(self, defaults=None):
            configparser.ConfigParser.__init__(self, defaults=defaults)
    
        def optionxform(self, optionstr):
            return optionstr
    View Code

    使用方法:

    conf = MyConfigParser()

    其他的和原方法不变。

  • 相关阅读:
    webservice测试工具
    Spring+CXF整合来管理webservice(服务器启动发布webservice)
    BAT常用命令
    【shell入门】Shell用法
    【shell】Shell命令合集(0)
    挨踢江湖之十二
    shell一些笔记
    在优化SQL语句中使用虚拟索引
    Jenkins Maven打包出错异常的解决方法
    [置顶] ios 360度旋转效果demo
  • 原文地址:https://www.cnblogs.com/smart-zihan/p/11883699.html
Copyright © 2020-2023  润新知