Python 基础 - Day 5 Learning Note - 模块 之 标准库:xml (9)

xml 模块介绍

和json一样,适用于不同语言及程序的数据交换的协议。但是json用起来更简单,并有代替xml的趋势。 现在多数金融数据提供方(e.g. bloombegy)还在用xml的方式。

在python中,生成和解析 XML 文件 用 导入 xml.etree.ElementTree 模块

xml文件的格式

xml的格式如下,就是通过<>节点来区别数据结构的:

xml的格式

常用操作

读取xml

import xml.etree.ElementTree as ET

tree = ET.parse("xmltest.xml")
root = tree.getroot()
print(root.tag)  # 返回 data

# 历遍xml文档
for child in root:
    print(child.tag, child.attrib)   #返回country 层
    for i in child:
        print(i.tag, i.text)

# 只历遍year节点, 选择数据历遍
for node in root.iter("year"):
    print(node.tag,node.text)

读取xml

修改删除xml文件内容

import xml.etree.ElementTree as ET

tree = ET.parse("xmltest.xml")
root = tree.getroot()

#修改数据
for node in root.iter("year"):
    new_year = int(node.text) + 1  # 每年都增加1
    node.text = str(new_year)   # 赋值
    node.set("updated","yes")   # 同时,修改attribution 属性

tree.write("xmltest.xml")

# 删除某个node
for country in root.findall("country"):
    rank = int(country.find(‘rank‘).text)
    if rank > 50:
        root.remove(country)

tree.write("output.xml")

修改和删除

创建新xml文件

import xml.etree.ElementTree as ET

new_xml = ET.Element("namelist")   # 创建根节点
personinfo = ET.SubElement(new_xml,"personinfo",attrib={"enrolled":"yea"})
name = ET.SubElement(personinfo,"name")
name.text = "alex li"
age = ET.SubElement(personinfo,"age",attrib={"checked":"no"})
age.text = "56"
sex = ET.SubElement(personinfo,"sex")
sex.text = "F"
personinfo2 = ET.SubElement(new_xml,"personinfo", attrib={"enrolled": "yes"})
name = ET.SubElement(personinfo2, "name")
name.text = "oldboy ran"
age = ET.SubElement(personinfo2, "age")
age.text = "22"

et = ET.ElementTree(new_xml)   # 生成文档对象
et.write("new_xml_test.xml", encoding="utf-8", xml_declaration=True)

ET.dump(new_xml) # 打印生成的格式

创建

时间: 2024-11-08 19:10:46

Python 基础 - Day 5 Learning Note - 模块 之 标准库:xml (9)的相关文章

Python 基础 - Day 5 Learning Note - 模块 之 标准库:random 模块

常用操作 import random # 随机浮点数 print(random.random()) # 0.1706000097536472 # 返回生成一个0到1的随机浮点数: 0<= n <= 1 print(random.uniform(1,8)) # 4.060336609768256 # 函数语法: random.uniform(a,b) # 返回生成以a为下限,b为上限的随机浮点数: a<=n<=b # 随机整数 print(random.randint(1,10))

Python 基础 - Day 5 Learning Note - 模块 之 标准库:RE (14) 正则表达式

RE 模块介绍 正则表达式(RE)用作于处理文件和数据,为高级文本模式匹配,以及搜索-替代等功能提供基础. 实质就是一些由字符和特殊符号(元字符:metacharacter)组成的字符串,它们描述了这些字符和字符的某种重复方式,因此能按某种模式匹配一个有相似特征的字符串的集合,也能按某种模式匹配一系列有相似特征的字符串,我们称为模式匹配 (patten match). 在python中, pattern-match 有两种主要方式完成: 搜索(search)和匹配(match). 搜索,在字符串

Python 基础 - Day 5 Learning Note - 模块 之 标准库:datetime (2)

介绍 Datetime 模块是time模块的再次封装,提供了更多的接口.主要是日期和时间的解析,格式化及运算. 其他关于时间的模块: time - basic calendar - basic pytz - 关于time zones dateutil - extension of datetime 常用操作 Times类 import datetime t = datetime.time(1,2,3) # 01:02:03 print(t) # 语法: datetime.time(hour,mi

Python 基础 - Day 5 Learning Note - 模块 之 标准库:ConfigParser (10)

configparser模块介绍 用于生成和修改常见的配置文档(configuration file), 配置文件格式 用户配置文件就是在用户登录电脑时,或是用户在使用软件时,软件系统为用户所要加载所需环境的设置和文件的集合.它包括所有用户专用的配置设置,如程序项目.屏幕颜色.网络连接.打印机连接.鼠标设置及窗口的大小和位置等.一般格式包括ini,cfg,xml, config等. 配置文件的格式如下 [DEFAULT] ServerAliveInterval = 45 Compression

Python 基础 - Day 5 Learning Note - 模块 之 标准库:time (1)

时间的表示方式 1. 间戳 timestamp:  从1970年1月1日 00:00:00 开始按秒计算的偏移量,以float数据类型呈现. 返回时间戳的函数有: time() , clock() 等. 2. sruct_time 元祖方式: 返回struct_time元祖的函数包括 gmtime(), localtime(), strptim(). 返回的元祖包括以下9个元素. 索引 INDEX 属性 ATTRIBUTE 值 VALUES 0 tm_year  比如2011 1 tm_mon

Python 基础 - Day 4 Learning Note - 模块 - Json &amp; Pickle

Json和Pickle的区别 在python的序列化的两个模块中,json模块是用于字符串和python数据类型间进行转换:另一个pickle模块,是用于python特有的类型(所有数据类型和python的数据类型间进行转换.json是可以在不同语言之间交换数据的,而pickle只在python之间使用.json只能序列化最基本的数据类型,json只能把常用的数据类型序列化(列表.字典.列表.字符串.数字.),比如日期格式.类对象!josn就不行了.而pickle可以序列化所有的数据类型,包括类

Python 基础 - Day 5 Learning Note - 模块 之 介绍篇

定义 模块(module)支持从逻辑上组织Python代码,本质就是.py结尾的python文件(e.g.文件名:test.py; 模块名:test),目的是实现某项功能.将其他模块属性附加到你的模块中的操作叫导入(import). 模块分为三类:标准库.开源模块(open source module)和自定义模块. 包(package)是一个有层次的文件目录结构, 定义了一个由模块和子包组成的python应用程序执行环境.和模块及类一样,也使用句点属性标识来访问他们的元素.使用标准的impor

python基础教程_学习笔记16:标准库:一些最爱——random

标准库:一些最爱 random random模块包括返回随机数的函数,可以用于模拟或者用于任何产生随机输出的程序. 事实上,所产生的数字都是伪随机数,它们以一个可预测的系统作为基础,除非是为了强加密的目标,否则这些随机数还是足够随机的.如果真的需要随机性,可以使用os模块的urandom函数. 重要函数 函数 描述 random() 返回0<=n<1之间的随机实数n,其中0<n<=1 getrandbits(n) 以长整型形式返回n个随机位(二进制数) uniform(a,b) 返

python基础教程_学习笔记17:标准库:一些最爱——time

标准库:一些最爱 time time模块所包含的函数能够实现以下功能: 获取当前时间.操作系统时间和日期.从字符串读取时间以及格式化时间为字符串. 日期可以用实数(从"新纪元"的1月1日0点开始计算到现在的秒数,新纪元是一个与平台相关的年份,对unix来说是1970年),或者是包含有9个整数的元组. 日期元组的字段含义 如元组: (2008,1,21,12,2,56,0,21,0) 表示2008年1月21日12时2分56秒,星期一,且是当年的第21天(无夏令时). 索引 字段 值 0