configparse模块

用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser。

[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes [bitbucket.org]
user = hg [topsecret.server.com]
port = 50022
forwardx11 = no [group]
import configparser
# ------------------------------------读----------------------------------
# 读取文件内容
config = configparser.ConfigParser() # 实例化(生成对象)
config.read("config_file.cnf", encoding="utf-8") # 读取配置文件
ret = config.sections() # 调用sections方法(默认不会读取default)
print(ret)
print("bitbucket.org" in config) # 判断元素是否在sections列表内
print(config["bitbucket.org"]["user"]) # 通过字典的形式取值
for i in config["topsecret.server.com"]: # for 循环"topsecret.server.com"字典中key
print(i)
for i,v in config["topsecret.server.com"].items(): # 使用items函数循环"topsecret.server.com"字典的键和值
print(i,v)
# 还有另一种读法
options = config.options("bitbucket.org") # 获取指定section的keys,(default 下的key默认读取)
print(options)
item_li = config.items("bitbucket.org") # 使用items获取指定section的键和值,元祖的形式,(default 下的key默认读取)
print(item_li)
val = config.get("bitbucket.org", "user") # 使用get获取指定键的值
print(val) # -------------------------改----------------------------
# config.add_section("group") # 新增一个sections,指定的section已存在时,报错
#has = config.has_section("group",name) # 检查
# print(has)
# config.set("group", "name", "sb") # 修改指定的section下的指定的键的值,若键不存在,自动添加
# config.add_section("group1")
config.remove_section("group1") # 删除指定的sections ,sections不存在不会报错
config.remove_option("group","name") # 删除指定的sections下指定的键值对
config.write(open("config_file.cnf", "w")) # 修改后写入文件生效

xml模块

xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。

<data>
<country name="Liechtenstein">
<rank updated="yes">2</rank>
<year update="yes">2016</year>
<gdppc>141100</gdppc>
<neighbor direction="E" name="Austria" />
<neighbor direction="W" name="Switzerland" />
</country>
<country name="Singapore">
<rank updated="yes">5</rank>
<year update="yes">2019</year>
<gdppc>59900</gdppc>
<neighbor direction="N" name="Malaysia" />
</country>
<country name="Panama">
<rank updated="yes">69</rank>
<year update="yes">2019</year>
<gdppc>13600</gdppc>
<neighbor direction="W" name="Costa Rica" />
<neighbor direction="E" name="Colombia" />
</country>
</data>
# xml协议在各个语言里的都 是支持的,在python中可以用以下模块操作xml
import xml.etree.ElementTree as ET
tree = ET.parse("xml_file.xml")
root = tree.getroot()
print(root.tag)
# 遍历xml文档
for xx in root:
print(xx.tag, xx.attrib)
for i in xx:
print(i.tag,i.text) # 只遍历年
for i in root.iter("year"):
print(i.tag,i.text)
# 修改
for i in root.iter("year"):
new_year = int(i.text) + 1
i.text = str(new_year)
i.set("update","yes")
tree.write("xml_file.xml")
# 删除
for country in root.findall("country"):
rank = int(country.find("rank").text)
if rank >= 50:
root.remove(country)
tree.write("out_file.xml")

创建一个xml文件

# 创建一个xml
new_xml = ET.Element("name_list")
name = ET.SubElement(new_xml, "name",attrib={"enrolled":"yes"})
age = ET.SubElement(name,"age",attrib={"cheked": "no"})
sex = ET.SubElement(name,"sex")
sex.text = ""
name2 = ET.SubElement(new_xml,"name",attrib={"enrolled": "no"})
age = ET.SubElement(name2,"age")
age.text = ""
et = ET.ElementTree(new_xml)
et.write("test.xml",encoding="utf-8",xml_declaration=True)
ET.dump(new_xml)
<?xml version='1.0' encoding='utf-8'?>
<name_list><name enrolled="yes"><age cheked="no" /><sex>33</sex></name><name enrolled="no"><age>19</age></name></name_list>

python configparse模块&xml模块的更多相关文章

  1. python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

    python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess ...

  2. [python标准库]XML模块

    1.什么是XML XML是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分.您可以创建内容,然后使用限定标记标记它,从而使每个单词. ...

  3. 人生苦短之我用Python篇(XML模块)

    XML模块 http://baike.baidu.com/link?url=-mBgvMdEDU7F05Pw7h_hBt7A0ctYiPm5a_WvKVLknydnRXKRIyydcVZWRjd_5H ...

  4. python笔记7 logging模块 hashlib模块 异常处理 datetime模块 shutil模块 xml模块(了解)

    logging模块 日志就是记录一些信息,方便查询或者辅助开发 记录文件,显示屏幕 低配日志, 只能写入文件或者屏幕输出 屏幕输出 import logging logging.debug('调试模式 ...

  5. python学习-52 XML模块

    XML模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但是json使用起来更简单. 例如:创建一个xml文件 <data> <country name=&q ...

  6. s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译

    时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...

  7. python的内置模块xml模块方法 xml解析 详解以及使用

    一.XML介绍 xml是实现不同语言或程序直接进行数据交换的协议,跟json差不多,单json使用起来更简单,不过现在还有很多传统公司的接口主要还是xml xml跟html都属于是标签语言 我们主要学 ...

  8. python之路xml模块补充

    创建一个子节点一共有三个方式 创建一个子节点2.3

  9. shelve模块 xml模块

    # import shelve# f=shelve.open('db.shl')# # f['stu1']={'name':'alex1','age':28}# # f['stu2']={'name' ...

随机推荐

  1. oracle data type

    NUMBER ( precision, scale) precision表示数字中的有效位.如果没有指定precision的话,Oracle将使用38作为精度. scale表示数字小数点右边的位数,s ...

  2. 【学习】C++多态机制

    多态:静态(早绑定) 在编译阶段和链接就能确定功能调用的函数.     动态(晚绑定) 在程序运行时根据需要的功能确定调用的函数. 实现晚绑定就要定义虚函数,使用虚函数则会用到基类指针. 继承基类虚成 ...

  3. LDAP&it's usage

    LDAP: 的英文全称是Lightweight Directory Access Protocol,简称为LDAP.LDAP是轻量目录访问协议[1],它是基于X.500标准的,但是简单多了并且可以根据 ...

  4. C# DataView数据处理的几种方法

    1.找到刚删除的所有列 DataView dv = dt.DefaultView; dv.Delete(); dv.Delete(); //找出所有刚删除掉的行 1.5 dv.RowStateFilt ...

  5. 引擎设计跟踪 地形LOD的改进

    虽然地形已经有LOD和形变(geomorphing, 这里简称morphing)来进行LOD的渐变,从而避免bump, 但是如果LOD级别过多,远处的高山就会严重丢失细节,比如变成尖尖的凸起,非常丑陋 ...

  6. Python基础测试题

    1,执行Python脚本的两种方式 答:一种是 交互式,命令行shell启动Python,输入相应代码得出结果,无保存,另一种是 脚本式,例如:python 脚本文件.py,脚本文件一直存在,可编辑, ...

  7. zabbix自定义监控主机

    目的: 从头开始自定义监控主机的磁盘.CPU.运行内存等 配置自动发现主机:设置ip地址范围,检查类型为zabbix客户端,端口未10050,键值为system.uname,设置唯一性准则为ip地址 ...

  8. Python error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat)解决方案

    error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it - 解决方案 python通过pi ...

  9. redux源码解读(一)

    redux 的源码虽然代码量并不多(除去注释大概300行吧).但是,因为函数式编程的思想在里面体现得淋漓尽致,理解起来并不太容易,所以准备使用三篇文章来分析. 第一篇,主要研究 redux 的核心思想 ...

  10. Kivy中文编程指南--https://cycleuser.gitbooks.io/kivy-guide-chinese/content/

    Kivy 是一个开源的 Python 框架,用于快速开发应用,实现各种当前流行的用户界面,比如多点触摸等等. + Kivy 可以运行于 Windows, Linux, MacOS, Android, ...