返回顶部
首页 > 资讯 > 后端开发 > Python >python模块之configparse
  • 575
分享到

python模块之configparse

模块pythonconfigparse 2023-01-31 06:01:56 575人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

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

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’,并不影响配置的正确读写。

--结束END--

本文标题: python模块之configparse

本文链接: https://lsjlt.com/news/190365.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python模块之configparse
    configparser configParser 模块用于操作配置文件 注:Parser汉译为“解析”之意。 配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值或者键:值)...
    99+
    2023-01-31
    模块 python configparse
  • 常用模块 - configparse模块
    一、简介 configparser模块在Python中是用来读取配置文件的,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节点(section),每个节可以有多个参数(键=值)。 二、生成配置文件 #! /us...
    99+
    2023-01-31
    模块 常用 configparse
  • 【python】 ConfigParse
        在java中我们会有properties属性文件,在python也有一种类似的属性配置文件,该文件对文件类型没有太大要求,但是文件的内容格式如下:[user] username=admin password=wangzp email...
    99+
    2023-01-31
    python ConfigParse
  • Python进阶,ConfigParse
    原文链接和公众号 文章链接:http://note.youdao.com/noteshareid=dfec323b2c6509d7189453ec730b3870⊂=7D7493D6D746490BA55C0997FF1BC465 更多文...
    99+
    2023-01-31
    进阶 Python ConfigParse
  • Python时间模块之datetime模块
    目录 简介 函数介绍及运用 date:日期类 1.获取当前时间  2.日期对象的属性 3.date类中时间和时间戳的转换: 4.修改日期使用replace方法  time:时间类  time类操作 datetime:日期时间类 timede...
    99+
    2023-09-12
    python datetime python 日期时间
  • Python模块学习之IPy模块
    IP地址规划是网络设计中非常重要的一个环节,规划的好坏会直接影响路由协议算法的效率,包括网络性能、可扩展性等方面,在这个过程当中,免不了要计算大量的IP地址,包括网段、网络掩码、广播地址、子网数、IP类型等。Python提供了一个强大的第...
    99+
    2023-01-31
    模块 Python IPy
  • python之MySQLdb模块
    防伪码:忘情公子著  MySQLdb是用来通过python控制mysql数据库的一个模块。  在说这个模块之前,我们先来想一下在命令行模式下操作mysql数据库的步骤,一般来说分为三步:...
    99+
    2024-04-02
  • python之re模块
    python 中使用正则表达式需要引入re模块,用来匹配处理字符串  如: import re #第一步,要引入re模块 a = re.findall("匹配规则", "要匹配的字符串") #第二步,调用模块函数 以列表形式返回匹配到的字...
    99+
    2023-01-30
    模块 python
  • python之shutil模块
    shutil:高级的 文件、文件夹、压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length])(copyfileobj方法只会拷贝文件内容)将文件内容拷贝到另一个文件中 import shu...
    99+
    2023-01-30
    模块 python shutil
  • python之os模块
    #OS模块 #os模块就是对操作系统进行操作,使用该模块必须先导入模块:import os #getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) #chdir()改变当前工作目录 #操作时如果书写完整的路径则不...
    99+
    2023-01-30
    模块 python os
  • python模块之collections
    计数器 Counter 计数元素迭代器 elements() 计数对象拷贝 copy() 计数对象清空 clear() from collections import Counter #import collection...
    99+
    2023-01-30
    模块 python collections
  • Python模块之pexpect
    pexpect是一个用来启动子程序并对其进行自动控制的 Python 模块。pexpect 可以用来和像 ssh、passwd、telnet 、rsync等命令行程序进行自动交互下面是我用pexpect写的一个脚本,是用来执行远程主机命令,...
    99+
    2023-01-31
    模块 Python pexpect
  • python之selectors模块
      selectors模块是在python3.4版本中引进的,它封装了IO多路复用中的select和epoll,能够更快,更方便的实现多并发效果。  官方文档见:https://docs.python.org/3/library/...
    99+
    2023-01-31
    模块 python selectors
  • python模块之base64
    base64模块提供了在二进制数据和可打印ASCII字符间编解码的功能,包括RFC3548中定义的Base16, Base32, Base64, Ascii85, Base85等编码。 RFC3548中定义的编码适用于将二进制数据编码后,...
    99+
    2023-01-31
    模块 python
  • python模块之subprocess
    subprocess.run() 运行并等待args参数指定的指令完成,返回CompletedProcess实例。 参数:(*popenargs, input=None, capture_output=False, timeout=Non...
    99+
    2023-01-31
    模块 python subprocess
  • python模块之shutil
    shutil模块提供了一些针对文件和目录的高级操作,主要是拷贝、移动。对于单个文件的操作,还可参考os模块 Warning:即使是高级别的拷贝函数(shutil.copy(),shutil.copy2())也不能拷贝所有的文件元数据。意思...
    99+
    2023-01-31
    模块 python shutil
  • python模块之hashlib
    hashlib模块实现了多种安全哈希和信息摘要算法的通用接口,包括FIPS中定义的SHA1, SHA224, SHA256, SHA384, SHA512以及RFC 1321中定义的MD5 注意点:1. adler32及crc32哈希由z...
    99+
    2023-01-31
    模块 python hashlib
  • python模块之functools
    functools模块提供了某些高阶函数(high-order function)。 functools.cmp_to_key(func) 比较函数是接收两个参数进行比较的函数,返回一个负数表示<,返回0表示=,返回一个正数表示&g...
    99+
    2023-01-31
    模块 python functools
  • Python 之 pexpect模块
    python安装setuptools模块之后,便可使用easy_install来安装python的第三方扩展模块,默认安装路径是:/usr/lib/python2.6/site-packages/easy_install 模块名 #可以直接...
    99+
    2023-01-31
    模块 Python pexpect
  • python之syslog模块
    syslog模块为提供了rsyslog模块的一个接口。可以记录程序运行时的输出信息。个人认为此方法没有logging模块方便常用方法如下:syslog.open(indent[,logopt[,facility]])  ####初始化rsy...
    99+
    2023-01-31
    模块 python syslog
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作