python-day6-configparser模块,xml.etree模块

操作键值对文件

 1 #文件db格式为
 2 [section]
 3 a = 1
 4 b = 2
 5
 6 [section1]
 7 d = 3
 8 c = 4
 9
10 import configparser
11
12 #获取所有节点
13 config = configparser.ConfigParser()
14 config.read(‘db‘)
15 ret = config.sections()
16 print(ret)
17
18 >>>[‘section‘, ‘section1‘]
19
20 #获取指定节点下所有的键值对
21 ret = config.items(‘section1‘)
22 print(‘获取键值对:‘,ret)
23 >>>获取键值对: [(‘d‘, ‘3‘), (‘c‘, ‘4‘)]
24
25 #获取所有的键
26 ret = config.options(‘section‘)
27 print(‘获取节点下键名称:‘,ret)
28 >>>获取节点下键名称: [‘a‘, ‘b‘]
29
30 #获取节点下的指定key的值
31 ret =config.get(‘section1‘,‘c‘)
32 print(ret)
33 >>>4
34
35 #检查节点是否存在
36 has_sec = config.has_section(‘section1‘)
37 print(has_sec)
38 >>>True
39
40 #添加节点section2
41 config.add_section(‘section2‘)
42 config.write(open(‘db‘,‘w‘))
43
44 #db文件当前为
45 [section]
46 a = 1
47 b = 2
48
49 [section1]
50 d = 3
51 c = 4
52
53 [section2]
54
55 #删除节点section2
56 config.remove_section(‘section2‘)
57 config.write(open(‘db‘,‘w‘))
58
59 #当前db文件内容为
60 [section]
61 a = 1
62 b = 2
63
64 [section1]
65 d = 3
66 c = 4
67
68 #检查删除设置指定组内的键值对是否存在
69 has_opt = config.has_option(‘section1‘,‘c‘)
70 print(has_opt)
71 >>>True
72
73 #删除
74 config.remove_option(‘section1‘,‘c‘)
75 config.write(open(‘db‘,‘w‘))
76 #当前db文件内容为
77 [section]
78 a = 1
79 b = 2
80
81 [section1]
82 d = 3
83
84 #设置更改指定值
85 config.set(‘section1‘,‘d‘,‘123‘)
86 config.write(open(‘db‘,‘w‘))
87 #db内容
88 [section]
89 a = 1
90 b = 2
91
92 [section1]
93 d = 123
94 c = 4
 1 #oo.xml文件内容
 2 <data>
 3     <country name="Liechtenstein">
 4         <rank updated="yes">2</rank>
 5         <year>2023</year>
 6         <year>2027</year>
 7         <year>2027</year>
 8         <gdppc>141100</gdppc>
 9         <neighbor direction="E" name="Austria" />
10         <neighbor direction="W" name="Switzerland" />
11     </country>
12 </data>
13
14 from xml.etree import ElementTree as ET
15
16 #打开xml文件加载到内存
17 tree = ET.parse(‘oo.xml‘)
18 #获取根节点
19 root = tree.getroot()
20
21 for child in root:
22     print(child.tag,child.attrib)#child.tag,子节点标签名,子节点属性
23     for gradechild in child:
24         print(gradechild.tag,gradechild.text,gradechild.attrib)
25
26 >>>country {‘name‘: ‘Liechtenstein‘}
27 >>>rank 2 {‘updated‘: ‘yes‘}
28 >>>year 2023 {}
29 >>>gdppc 141100 {}
30 >>>neighbor None {‘direction‘: ‘E‘, ‘name‘: ‘Austria‘}
31 >>>neighbor None {‘direction‘: ‘W‘, ‘name‘: ‘Switzerland‘}
32
33 #两种方法读取xml文件直接解析,tree对象是ElementTree对象
34 tree = ET.parse(‘oo.xml‘)
35 root = tree.getroot()
36
37 #将xml已字符串格式获得,将字符串转化为element对象,无法进行写操作
38 str_xml = open(‘oo.xml‘,‘r‘).read()
39 root = ET.XML(str_xml)
40
41 #循环所有的year节点
42 for node in root.iter(‘year‘):
43     #将year节点中的内容自增一
44     new_year = int (node.text) +1
45     node.text = str(new_year)
46     print(node.text)
47 >>>2024
48 >>>2027
49 >>>2027
50     #设置属性
51     node.set(‘name‘,‘alex‘)
52     node.set(‘age‘,‘18‘)
53     print(node.attrib)
54 >>>{‘age‘: ‘18‘, ‘name‘: ‘alex‘}
55 >>>{‘age‘: ‘18‘, ‘name‘: ‘alex‘}
56 >>>{‘age‘: ‘18‘, ‘name‘: ‘alex‘}
57     #删除属性
58     del node.attrib[‘name‘]
59     print(node.attrib)
60 >>>{‘age‘: ‘18‘}
61 >>>{‘age‘: ‘18‘}
62 >>>{‘age‘: ‘18‘}
63 #保存文件
64 tree = ET.ElementTree(root)
65 tree.write("newnew.xml", encoding=‘utf-8‘)
 1 #创建根节点
 2 root = ET.Element(‘family‘)
 3
 4 #创建大儿子
 5 son1 = ET.Element(‘son‘,{‘name‘:‘儿子1‘})
 6 #创建二儿子
 7 son2 = ET.Element(‘son‘,{‘name‘:‘儿子2‘})
 8
 9 #大儿子中创建两个孙子
10 grandson1 = ET.Element(‘grandson‘,{‘name‘:‘孙子1‘})
11 grandson2 = ET.Element(‘grandson‘,{‘name‘:‘孙子2‘})
12 son1.append(grandson1)
13 son2.append(grandson2)
14
15 root.append(son1)
16 root.append(son2)
17
18 tree = ET.ElementTree(root)
19 tree.write(‘ooo.xml‘,encoding = ‘utf-8‘,short_empty_elements = False)
20 #ooo.xml文件为
21 <family><son name="儿子1"><grandson name="孙子1"></grandson></son><son name="儿子2"><grandson name="孙子2"></grandson></son></family>
时间: 2025-01-16 17:14:35

python-day6-configparser模块,xml.etree模块的相关文章

Python 基础 - 4.10 xml处理模块

xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml. xml的格式如下,就是通过<>节点来区别数据结构的: <?xml version="1.0"?> <data> <country name="Liechtenstein"> <rank upda

python - 常用模块 - xml处理模块

xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,在以前,在json还没诞生之前,xml十分流行, 以至于到现在很多传统公司如金融行业的很多系统的接口还主要是xml. 1 #!/usr/bin/env python 2 #coding:utf-8 3 4 5 import xml.etree.ElementTree as ET 6 7 print(''' 8 =============打印根节点的名字============ 9 ''') 10

json,pickle,shelve模块,xml处理模块

常用模块学习-序列化模块详解 什么叫序列化? 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes. 为什么要序列化? 你打游戏过程中,打累了,停下来,关掉游戏.想过2天再玩,2天之后,游戏又从你上次停止的地方继续运行,你上次游戏的进度肯定保存在硬盘上了,是以何种形式呢?游戏过程中产生的很多临时数据是不规律的,可能在你关掉游戏时正好有10个列表,3个嵌套字典的数据集合在内存里,需要存下来?你如何存?把列表变成文件里的多行多列形式

[python 学习] 使用 xml.etree.ElementTree 模块处理 XML

---恢复内容开始--- 导入数据(读文件和读字符串) 本地文件 country_data.xml <?xml version="1.0"?> <data> <country name="Liechtenstein"> <rank>1</rank> <year>2008</year> <gdppc>141100</gdppc> <neighbor nam

python day6 学习整理

今天学习的内容如下: 1.常用模块 2.面向对象的程序设计 1. 时间模块 时间分成三种时间 1.时间戳(1970年到现在的秒数)(time.time()) 2.结构化的时间(time.localtime().tm_year) 3.utc时区的时间(time.gtime()) 4.格式化的时间(time.strftime('%Y-%m-%d %H:%M:%S')) 另一种形式(time.strftime('%Y-%m-%d %X')) time.strftime('%Y',time.localt

Python中用ElementTree解析XML

[XML基本概念介绍] XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. 概念一: <foo> # foo元素的起始标签 </foo> # foo元素的结束标签 # note: 每一个起始标签必须有对应的结束标签来闭合, 也可以写成<foo/> 概念二: <foo> # 元素可以嵌套到任意参次 <bar></bar> # bar元素为foo元素的子元素 </f

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

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess logging re正则 转自老男孩老师Yuan:http://www.cnblogs.com/yuanchenqi/articles/5732581.html 模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,

python模块之xml.etree.ElementTree

Python有三种方法解析XML,SAX,DOM,以及ElementTree###1.SAX (simple API for XML )       pyhton 标准库包含SAX解析器,SAX是一种典型的极为快速的工具,在解析XML时,不会占用大量内存.但是这是基于回调机制的,因此在某些数据中,它会调用某些方法进行传递.这意味着必须为数据指定句柄,以维持自己的状态,这是非常困难的. ###2.DOM(Document Object Model)       与SAX比较,DOM典型的缺点是比较

python_day7【模块configparser、XML、requests、shutil、系统命令-面向对象】之篇

python内置模块补充 一.configparser configparser:用户处理特定格式的文件,其本质是利用open打开文件 # 节点 [section1] #键值对k1 = v1 k2:v2 k1 = v1 #建:k1 k2 k2:v2 [section2] k1 = v1 k3:v3 [section3] k3 = v3 k4:v4 [section4] k4 = v4 k5:v5 在configparser默认将获取的元素当做一个字符串进行处理,不用特定执行元素的类型 1.获取所