我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python模块之configparse

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python模块之configparse

configparser

configParser 模块用于操作配置文件

注:Parser汉译为“解析”之意。

配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值或者键:值)。

为了更好的理解本文,我们先了解一下配置文件的组成及命名:配置文件(INI文件)由节(section)、键、值组成。

样例配置文件config.ini

[book]
title = ConfigParser模块教程
time = 2018-01-12 11:47:37

[size]
size = 1024

[other]
blog = https://blog.51cto.com/kexiaoke

在config.ini里面出现了三个节(section),分别是book,size,other
book里面有两个键值对,size和other里面各一个。

读取配置文件

  • read(filename) 直接读取ini文件内容
  • sections() 得到所有的section,并以列表的形式返回
  • options(section) 得到该section的所有option
  • items(section) 得到该section的所有键值对
  • get(section,option) 得到section中option的值,返回为string类型
  • getint(section,option) 得到section中option的值,返回为int类型

增加或修改配置

  • add_section(section) 添加一个新的section
  • set( section, option, value) 对section中的option进行设置
    需要调用write将内容写入配置文件。

    获取config.ini配置示例

    read_config.py

#!/usr/bin/env python

__author__ = 'xiaoke'
__time__ = '2018-01-12 11:17'
PROJECT_NAME = 'test_projtcts'

#导入configparser模块
import configparser

#生成conf对象
conf= configparser.ConfigParser()

#加载config.ini文件内容
conf.read('config.ini')

#读取配置文件里所有的Section
print('读取配置文件里所有的Section')
print(conf.sections())

#打印出book这个section下包含key
print('打印出book这个section下包含key')
print(conf.options('book'))

#打印test1这个section下所有的key及对应的values
print('打印book这个section下所有的key及对应的values')
print(conf.items("book"))

#指定section,option读取值
print('获取book这section个title内容')
print(conf.get('book','title'))

执行结果如下

读取配置文件里所有的Section
['book', 'size', 'other']
打印出book这个section下包含key
['title', 'time']
打印book这个section下所有的key及对应的values
[('title', 'ConfigParser模块教程'), ('time', '2018-01-12 11:47:37')]
获取book这section个title内容
ConfigParser模块教程

在config.ini文件增加一个section

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'xiaoke'
__time__ = '2018-01-12 13:54'
PROJECT_NAME = 'test_projtcts'

#导入configparser模块
import configparser

#生成conf对象
conf= configparser.ConfigParser()

#加载config.ini文件内容
conf.read('config.ini')

#增加一个section
conf.add_section('add_test')
conf.set('add_test','name','xiaoke')
conf.set('add_test','age','25')

#添加完毕,必须调用write方法写入
conf.write(open('config.ini','w'))

#打印刚添加的内容
print(conf.items('add_test'))

执行完成后会在配置文件如下的内容

conf.set('section','key','value')

[add_test]
name = xiaoke
age = 25

修改section的内容

#导入configparser模块
import configparser

#生成conf对象
conf= configparser.ConfigParser()

#加载config.ini文件内容
conf.read('config.ini')

#打印修改之前的值
print(conf.items('add_test'))

#修改add_test section的age键
conf.set('add_test','age','27')

#修改完毕,必须调用write方法写入
conf.write(open('config.ini','w'))

#打印修改之后的值
print(conf.items('add_test'))

------------------------结果如下-----------------

修改之前的值
[('name', 'xiaoke'), ('age', '28')]
修改之后的值
[('name', 'xiaoke'), ('age', '27')]

删除section或者option

删除section

config.remove_section("add_test")
conf.write(open('config.ini','w'))

删除option

conf.remove_option('add_test','age')
conf.write(open('config.ini','w'))

注意要点

注意要点:
1.ConfigParser 在get 时会自动过滤掉‘#’或‘;’注释的行(内容);
一般情况下我们手工会把配置中的暂时不需要的用‘#’注释,问题在于,Configparser 在wirte的时候同file object行为一致,如果将注释’#’的配置经过get后,再wirte到conf,那么’#’的配置就会丢失。
那么就需要一个策略或规则,配置需不需要手工编辑 ?还是建立复杂的对原生文本的处理的东西,我建议是管住手,避免将一些重要的配置爆露给用户编辑,切记行内注释和Section内注释。
有一个相对简单的方法是: 对单独在一行的代码,你可以在读入前把”#”, “;”换成其他字符如’@’,或‘^’(在其bat等其他语言中用的注释符易于理解),使用allow_no_value选项,这样注释会被当成配置保存下来,处理后你再把“#”, “;”换回来。
2.在ConfigParser write之后,配置文本如果有大写字母’PRODUCT’会变为小写字母’product’,并不影响配置的正确读写。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python模块之configparse

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python模块之configparse

configparserconfigParser 模块用于操作配置文件注:Parser汉译为“解析”之意。配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值或者键:值)。为了
2023-01-31

常用模块 - configparse模块

一、简介configparser模块在Python中是用来读取配置文件的,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节点(section),每个节可以有多个参数(键=值)。二、生成配置文件#! /usr/bin
2023-01-31

Python模块学习之IPy模块

IP地址规划是网络设计中非常重要的一个环节,规划的好坏会直接影响路由协议算法的效率,包括网络性能、可扩展性等方面,在这个过程当中,免不了要计算大量的IP地址,包括网段、网络掩码、广播地址、子网数、IP类型等。Python提供了一个强大的第三
2023-01-31

Python 之 shutil模块

shutil模块用于执行高级的文件操作,如复制,移动重命名等。>>> shutil.shutil.Error shutil._samefileshutil.__all__ shutil.abspa
2023-01-31

Python 模块之fabric

Fabric是一个Python库和命令行工具,旨在为应用部署和系统管理任务的SSH的流水线式操作,使之更加高效和方便。Fabric提供了一套基本的执行本地和远程shell命令、上传和下载文件的操作,包括一些辅助函数,例如驱动正在运行的用户输
2023-01-31

python之shutil模块

shutil:高级的 文件、文件夹、压缩包 处理模块shutil.copyfileobj(fsrc, fdst[, length])(copyfileobj方法只会拷贝文件内容)将文件内容拷贝到另一个文件中import shutilshut
2023-01-30

python模块之hashlib

hashlib模块实现了多种安全哈希和信息摘要算法的通用接口,包括FIPS中定义的SHA1, SHA224, SHA256, SHA384, SHA512以及RFC 1321中定义的MD5注意点:1. adler32及crc32哈希由zli
2023-01-31

python模块之subprocess

subprocess.run()运行并等待args参数指定的指令完成,返回CompletedProcess实例。参数:(*popenargs, input=None, capture_output=False, timeout=None,
2023-01-31

python模块之base64

base64模块提供了在二进制数据和可打印ASCII字符间编解码的功能,包括RFC3548中定义的Base16, Base32, Base64, Ascii85, Base85等编码。RFC3548中定义的编码适用于将二进制数据编码后,在邮
2023-01-31

python之selectors模块

selectors模块是在python3.4版本中引进的,它封装了IO多路复用中的select和epoll,能够更快,更方便的实现多并发效果。  官方文档见:https://docs.python.org/3/library/selecto
2023-01-31

python模块之functools

functools模块提供了某些高阶函数(high-order function)。functools.cmp_to_key(func)比较函数是接收两个参数进行比较的函数,返回一个负数表示<,返回0表示=,返回一个正数表示>。key函数接
2023-01-31

Python 之 paramiko 模块

paramiko模块是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接1.安装#paramiko模块的安装需要先安装PyCrypto模块wget https://pypi.python.org
2023-01-31

Python 之os模块

os模块提供了访问多个操作系统服务的功能,os模块的子模块os.path模块也包含了一些文件目录常用操作的函数。access(path, mode) :检测对文件的访问权限。>>> os.access('/root/zhu.txt', os
2023-01-31

python模块之collections

计数器 Counter计数元素迭代器 elements()计数对象拷贝 copy()计数对象清空 clear()from collections import Counter#import collectionsd = Counter("a
2023-01-30

Python模块之: configobj

原来也有写过一篇文章Python模块之: ConfigParser 用来解析INI文件,但是在使用过程中存在一些问题。比如:1,不能区分大小写。2,重新写入的ini文件不能保留原有INI文件的注释。3,重新写入的ini文件不能保持原有的顺序
2023-01-31

python之sys模块

sys.argv 命令行参数List,第一个元素是程序本身路径;类似于shell的位置参数sys.argv[0] 表示程序自身sys.argv[1] 表示程序的第一个参数sys.argv[2] 表示程序的第二个参数#!/usr/bin/
2023-01-31

Python之Subprocess模块

前言其实有一个模块也支持执行系统命令,那个模块就是sys.system,但他执行系统命令会直接通过主进程去执行命令,那假如,该命令的执行需要耗费一个小时,那么主进程会卡一个小时,而不会去干别的事,这样就会导致程序的运行效率低下。如果由sub
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录