configparser   模块

解析配置文件模块

什么是配置文件?

用于编写程序的配置信息的文件

什么是配置信息?

为了提高程序的扩展性

  1. #configparser模块的使用
  2. #首先我们需要知道配置文件怎么写,配置文件的组成
  3. [section1] #分区1
  4. k1 = v1 #分区1内的选项
  5. k2:v2
  6. user=ming
  7. age=25
  8. is_admin=true
  9. salary=31

  10. [section2] #分区2
  11. k1 = v1 #分区2的选项
  12. #分区不能重名,同一分区内的选项不能一样

  13. #使用
  14. #1.首先创建一个配置文件解析器
  15. cfg = configparser.ConfigParser() #创建配置文件解析器
  16. cfg.read('test.cfg', encoding='utf-8') #读取名为test的配置文件,编码格式为utf-8


  17. #1.读取文件
  18. #获取分区
  19. res = cfg.sections() #查看所有分区
  20. print(res) #[section1 , stection2]
  21. #获取分区下的某一选项
  22. res = cfg.get('section1', 'user') #查看分区section1下的user对应的值
  23. print(res) #ming type为字符串类型
  24. #获取分区下所有的选项
  25. res = cfg.options('section1') #查看section1下的所有选项
  26. print(res) #['k1', 'k2', 'user', 'age', 'is_admin', 'salary']
  27. #获取分区下is_admin的布尔值
  28. res = cfg.getboolean('section1', 'is_admin') #查看is_admin的布尔值
  29. print(res) #输出的是True
  30. #获取分区下salary的浮点数
  31. res = cfg.getfloat('section1', 'salary') #查看浮点数
  32. print(res) #31.0
  33. #获取分区下age选项的整型数字
  34. res = cfg.getint('section1', 'age') #查看整型
  35. print(res) #25 整型数字
  36. #获取分区下所有键值对
  37. res = cfg.items('section1') #查看分区下所有选项的键值
  38. print(res) #[('k1','v1'),('k2','v2'),('user', 'ming'),('age', '25'),('is_admin', 'True'),('salary', '31')]


  39. #2.改写
  40. cfg = configparser.ConfigParser() #创建配置文件解析器
  41. cfg.read('test.cfg', encoding='utf-8') #读取名为test的配置文件,编码格式为utf-8
  42. #删除整个标题section2
  43. config.remove_section('section2')

  44. #删除标题section1下的某个k1和k2
  45. config.remove_option('section1','k1')
  46. config.remove_option('section1','k2')

  47. #判断是否存在某个标题
  48. print(config.has_section('section1'))

  49. #判断标题section1下是否有user
  50. print(config.has_option('section1',''))


  51. #添加一个标题
  52. config.add_section('egon')

  53. #在标题egon下添加name=egon,age=18的配置
  54. config.set('egon','name','egon')
  55. config.set('egon','age',18) #报错,必须是字符串
  56. !!!注意
  57. #最后将修改的内容写入文件,完成最终的修改
  58. config.write(open('a.cfg','w'))

python中configpraser模块的更多相关文章

  1. Python中optionParser模块的使用方法[转]

    本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内 ...

  2. python中threading模块详解(一)

    python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...

  3. 【转】关于python中re模块split方法的使用

    注:最近在研究文本处理,需要用到正则切割文本,所以收索到了这篇文章,很有用,谢谢原作者. 原址:http://blog.sciencenet.cn/blog-314114-775285.html 关于 ...

  4. Python中的模块介绍和使用

    在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一 ...

  5. python中导入模块的本质, 无法导入手写模块的解决办法

    最近身边一些朋友发生在项目当中编写自己模块,导入的时候无法导入的问题. 下面我来分享一下关于python中导入模块的一些基本知识. 1 导入模块时寻找路径 在每一个运行的python程序当中,都维护了 ...

  6. Python中time模块详解

    Python中time模块详解 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. ...

  7. Python中collections模块

    目录 Python中collections模块 Counter defaultdict OrderedDict namedtuple deque ChainMap Python中collections ...

  8. Python中pathlib模块

    Python中pathlib模块 Path.cwd():返回当前目录的路径 Path.home():返回当前用户的家目录 Path.stat():返回此路径信息 Path.touch():创建文件 P ...

  9. Python 中包/模块的 `import` 操作

    版权声明:博客为作者原创,允许转载,但必须注明原文地址: https://www.cnblogs.com/byronxie/p/10745292.html 用实例来说明 import 的作用吧. 创建 ...

随机推荐

  1. Vxlan基础理解

    一 . 为什么需要Vxlan   1. vlan的数量限制    4096个vlan远不能满足大规模云计算数据中心的需求   2. 物理网络基础设施的限制    基于IP子网的区域划分限制了需要二层网 ...

  2. APP加急审核

    提交加急审核需要理由,一般涉及到银行信息,或者崩溃打不开这种的比较容易通过.反正苹果很苛刻,一般不给处理.如果处理第二天就可以下载最新了,省去了漫漫的等待.一个成功加急审核的借口-- We found ...

  3. AspectJ的拓展学习--织入顺序和通知参数指定

    前言: 其实spring的aop非常的强大, 因此研究一下AspectJ还是有必要, 而不是仅仅停留在初级的阶段. 比如spring的事务是基于aop来实现的, 如果不能深入的研究, 可能很多知识点, ...

  4. python 数据库查询

    查询多个为空返回是() 查询一个为空返回是None

  5. 深入学习Motan系列(五)—— 序列化与编码协议

    一.序列化 1.什么是序列化和反序列化? 序列化:将对象变成有序的字节流,里面保存了对象的状态和相关描述信息. 反序列化:将有序的字节流恢复成对象. 一句话来说,就是对象的保存与恢复. 为什么需要这个 ...

  6. Go Example--defer

    package main import ( "fmt" "os" ) func main() { f := createFile("/tmp/defe ...

  7. C# 利用反射完成计算器可扩展功能

    一个主要的窗体程序,两个输入框,一个label using System; using System.Collections.Generic; using System.ComponentModel; ...

  8. C# EasyHook MessageBox 示例(极简而全)

    完整代码,原创无藏私,绝对实用.Windows10 X64 下调试通过,对 w3wp.exe, sqlserver.exe,notepad.exe,iexporer.exe 注入后,长时间运行稳定,未 ...

  9. 1.3 Linux分区类型

    1.主分区最多只能有4个. 2.扩展分区: 最多只能有一个: 主分区加扩展分区最多只能有4个: 扩展分区只能包含逻辑分区,不能写数据. 3.格式化目的: 写入文件系统:清除数据:划出文件分配表(i n ...

  10. bzoj 1814 Ural 1519 Formula 1 ——插头DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1814 普通的插头 DP .但是调了很久.注意如果合并两个 1 的话,不是 “把向右第一个 2 ...