基本使用方法

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

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

第二步:读取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)

第三步:输出结果

['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

使用方法:

conf = MyConfigParser()

其他的和原方法不变。

Python基础之读取ini文件的更多相关文章

  1. python中configparser模块读取ini文件

    python中configparser模块读取ini文件 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(se ...

  2. Python 用configparser读写ini文件

    一.configparser 简介Python用于读写ini文件的一个官方标准库.具体详见官网链接 二.configparser 部分方法介绍 方法 描述 read(filenames) filesn ...

  3. C#读取ini文件的方法

    最近项目用到ini文件,读取ini文件,方法如下: using System; using System.Collections.Generic; using System.Linq; using S ...

  4. 深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  5. VS VC 读取 INI文件

    1.获取应程序同极目录下的config.ini路劲 void GetConfigFilePath(char *path,int len, char *file) { char module[256] ...

  6. C# 读取ini文件,读不出来原因

    先赋上相关读取ini文件代码 public class INIHelper { public string inipath; [DllImport("kernel32")] pri ...

  7. C# 通过api函数GetPrivateProfileString读取ini文件,取不到值

    通过api函数GetPrivateProfileString读取ini文件,取不到值,测试了好长时间,都不行 确认程序,ini文件都没有错误的情况,最后发现是ini文件编码的原因. 将ini文件的编码 ...

  8. C# 读取ini文件 百度问问学习文档

    C# 读取ini文件 10 有多个section,现想读取整个ini文件和指定section下所有内容 补充: 发布答案可以,请对准题目啊,我不要指定节点的内容,我知道!我要的是读取指定区域的内容,假 ...

  9. bat 读取 ini 文件

    bat 读取 ini 文件 参考链接:https://stackoverflow.com/questions/2866117/windows-batch-script-to-read-an-ini-f ...

随机推荐

  1. Java调试大法,来了~

    很多同学经常问我:彤哥,你的源码为什么讲的那么好那么细,有没有什么方法? 此时,我一般回复四个字:调试大法. 然后,他们就会很懵逼:调试我也会呀,但是,我就做不到你那么细(像是在夸我),难道调试还有我 ...

  2. java并发编程JUC第九篇:CountDownLatch线程同步

    在之前的文章中已经为大家介绍了java并发编程的工具:BlockingQueue接口.ArrayBlockingQueue.DelayQueue.LinkedBlockingQueue.Priorit ...

  3. SpringMVC 进阶版

    请求限制 一些情况下我们可能需要对请求进行限制,比如仅允许POST,GET等... RequestMapping注解中提供了多个参数用于添加请求的限制条件 value 请求地址 path 请求地址 m ...

  4. ANDROID开发之GC_CONCURRENT freed

    <GC_Reason> <Amount_freed>, <Heap_stats>, <External_memory_stats>, <Pause ...

  5. 【C语言】整型在内存中的存储

    整型在内存中的存储 1.整型的归类 char short int long 以上都分为有符号(signed)与无符号(unsigned)的类型 2.原码.反码和补码 2.1 定义 计算机在表示一个数字 ...

  6. pod生命周期

    Pod生命周期 我们一般将pod对象从创建至终这段时间范围成为pod的生命周期,它主要包含以下的过程: pod创建过程 运行初始化容器(init container)过程 运行主容器(main con ...

  7. C# datagridview 这是滚动条位置

    1.datagridview 设置 表格内容铺满,内容自动换行 dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True; ...

  8. SpringBoot | 1.2 全注解下的Spring IoC

    前言 在学习SpringBoot之前,有几个Spring的重要的基础概念需要提一下,SpringBoot对这些基础概念做进一步的封装,完成自动配置.首先就是Spring的控制反转IOC,由于Sprin ...

  9. Java:Apache Commons 工具类介绍及简单使用

    Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下面是我这几年做开发过程中自己用过的工具类做简单介绍. Commons简介 组件 功能介绍 commo ...

  10. nginx反向代理tcp协议的80端口

    需求:内网有一台mqtt协议服务器,需要将外网的mqtt请求通过一台服务器代理到内网的mqtt服务器上.而这台代理服务器不会开放出了80之外的端口,所以只能使用80端口来转发mqtt请求. 步骤:1. ...