iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 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://www.lsjlt.com/news/190365.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 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时间模块之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模块之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模块之: configobj
    原来也有写过一篇文章Python模块之: ConfigParser 用来解析INI文件,但是在使用过程中存在一些问题。比如:1,不能区分大小写。2,重新写入的ini文件不能保留原有INI文件的注释。3,重新写入的ini文件不能保持原有的顺序...
    99+
    2023-01-31
    模块 Python configobj
  • Python 模块之fabric
    Fabric是一个Python库和命令行工具,旨在为应用部署和系统管理任务的SSH的流水线式操作,使之更加高效和方便。Fabric提供了一套基本的执行本地和远程shell命令、上传和下载文件的操作,包括一些辅助函数,例如驱动正在运行的用户输...
    99+
    2023-01-31
    模块 Python fabric
  • python之MySQLdb模块
    防伪码:忘情公子著  MySQLdb是用来通过python控制mysql数据库的一个模块。  在说这个模块之前,我们先来想一下在命令行模式下操作mysql数据库的步骤,一般来说分为三步:...
    99+
    2022-10-18
  • python之commands模块
    要获得shell命令的输出只需要`cmd`命令就可以了,需要得到命令执行的状态则需要判断$的值, 在Python中有一个模块commands也很容易做到以上的效果.看一下三个函数:1). commands.getstatusoutput(c...
    99+
    2023-01-31
    模块 python commands
  • python模块之subprocess
    subprocess.run() 运行并等待args参数指定的指令完成,返回CompletedProcess实例。 参数:(*popenargs, input=None, capture_output=False, timeout=Non...
    99+
    2023-01-31
    模块 python subprocess
  • Python之Subprocess模块
    前言其实有一个模块也支持执行系统命令,那个模块就是sys.system,但他执行系统命令会直接通过主进程去执行命令,那假如,该命令的执行需要耗费一个小时,那么主进程会卡一个小时,而不会去干别的事,这样就会导致程序的运行效率低下。 如果由su...
    99+
    2023-01-31
    模块 Python Subprocess
  • python之selectors模块
      selectors模块是在python3.4版本中引进的,它封装了IO多路复用中的select和epoll,能够更快,更方便的实现多并发效果。  官方文档见:https://docs.python.org/3/library/...
    99+
    2023-01-31
    模块 python selectors
  • python之syslog模块
    syslog模块为提供了rsyslog模块的一个接口。可以记录程序运行时的输出信息。个人认为此方法没有logging模块方便常用方法如下:syslog.open(indent[,logopt[,facility]])  ####初始化rsy...
    99+
    2023-01-31
    模块 python syslog
  • python模块之samba
    本文为记录Python下载samba里的文件的代码:from smb.SMBConnection import SMBConnection def get_script_file(): conn = SMBCon...
    99+
    2023-01-31
    模块 python samba
  • Python 之 paramiko 模块
    paramiko模块是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接1.安装#paramiko模块的安装需要先安装PyCrypto模块 wget https://pypi.python.or...
    99+
    2023-01-31
    模块 Python paramiko
  • python之sys模块
    sys.argv 命令行参数List,第一个元素是程序本身路径;类似于shell的位置参数 sys.argv[0] 表示程序自身sys.argv[1] 表示程序的第一个参数sys.argv[2] 表示程序的第二个参数 #!/usr...
    99+
    2023-01-31
    模块 python sys
  • Python 之os模块
    os模块提供了访问多个操作系统服务的功能,os模块的子模块os.path模块也包含了一些文件目录常用操作的函数。access(path, mode) :检测对文件的访问权限。>>> os.access('/root/zhu...
    99+
    2023-01-31
    模块 Python os
  • Python 之 pexpect模块
    python安装setuptools模块之后,便可使用easy_install来安装python的第三方扩展模块,默认安装路径是:/usr/lib/python2.6/site-packages/easy_install 模块名 #可以直接...
    99+
    2023-01-31
    模块 Python pexpect
  • python模块之collections
    计数器 Counter 计数元素迭代器 elements() 计数对象拷贝 copy() 计数对象清空 clear() from collections import Counter #import collection...
    99+
    2023-01-30
    模块 python collections
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作