python标准库ElementTree个人学习笔记

本文介绍了如何使用Python的ElementTree库来创建、解析XML文件,包括XML文件结构、读取XML、创建新文件、遍历和修改XML内容,以及删除元素的操作方法。
摘要由CSDN通过智能技术生成

前言

因为课题要用到创建和解析xml文件,所以简单自学了一下ElementTree这个库,由于本人是第一次接触这个库,所以只能以新手的角度进行解释,如果你也是新手,希望以新手的角度来理解的话可以跟着我的文章一起学习😀。Python 的 ElementTree 是一个用于解析和创建 XML 数据的模块。它包含两个类:ElementTree(代表整个XML文档)和 Element(代表XML中的单个节点)

一、xml文件结构简介

学过html的话可以忽略这部分内容,没学过我就简单介绍下

这张图里<>符号里的PostProcessing我们称为Tag也就是标签

type = “xxxx”我们称为attrib也就是属性,404和1446是在两个<>之间的内容,我们称为txt,也就是文本,大概的结构可以看下面这个伪代码

<Tag attrib = ' '>txt</Tag>

二、xml文件的读取

一般导包这么导

import xml.etree.ElementTree as ET

假设你有一个名为example.xml的文件,你可以用下面的代码来读取它,如果没有,你可以先看第三章学习创建一个xml文档。

tree = ET.parse('example.xml')
root = tree.getroot()

现在,root变量就包含了整个xml文件的根元素,我们后续可以之间操作root变量。

三、创建xml文件

如果你没有xml文件,那么可以先创建一个

# 创建根元素
root = ET.Element("root")

# 创建子元素
child = ET.SubElement(root, "child")
child.text = "This is a test"

# 创建子元素并添加属性
child_with_attrib = ET.SubElement(root, "child_with_attrib")
child_with_attrib.set("name", "value")

# 创建 ElementTree 对象并保存为 XML 文件
tree = ET.ElementTree(root)
tree.write("new_example.xml")

现在你可以写一个实例来测试一下,比如本文的第一张图就是由以下代码创建的(只是我个人的实例,新手学习的话建议用上面的代码块试一下)。

# 单张影像调窗操作,生成xml文件
import pydicom
import xml.etree.ElementTree as ET

# DICOM文件地址和输出的xml文件地址
input_dicom_file = "E:/competition/Graduate Project/CT/8003806910很好/FILE0.dcm"
output_xml_file = "E:/competition/Graduate Project/TEST/window adjustment/FILE0-a.xml"

# 读取DICOM文件
ds = pydicom.dcmread(input_dicom_file)

# 窗宽窗位调整数值设置
window_width = 404
window_level = 1446

# 创建XML文件来记录后处理操作
root = ET.Element("PostProcessing")
root.set("version", "1.0")
operation = ET.SubElement(root, "Operation")
operation.set("type", "WindowLevelAdjustment")
ET.SubElement(operation, "WindowWidth").text = str(window_width)
ET.SubElement(operation, "WindowLevel").text = str(window_center)

# 保存XML文件
tree = ET.ElementTree(root)
tree.write(output_xml_file)
print(f"Post processing steps saved to XML: {output_xml_file}")

这段代码里的创建XML文件里,PostProcessing是我创建的根节点,Operation是我创建的子节点,而windowwidth和windowlevel又是operation的子节点,我现在把本文的第一张图再放在这里就可以很好理解根节点和子节点了。

四、遍历xml文件

我们可以通过遍历根元素,来遍历整个文档

for child in root:
    print(child.tag, child.attrib)

五、修改xml文件

如果我们要修改某个节点的attrib,可以用set,比如我现在修改root节点

root.set('name','value')

那么root节点就会变成

<root name = "value">.......省略.......</root> 

如果我们要修改txt的值,比如我上面的代码,可以用.text来修改

ET.SubElement(operation, "WindowLevel").text = str(window_center)

 六、删除元素

for elem in root.findall('branch'):
    root.remove(elem)
    
# 保存更改
tree.write('modified_example.xml')

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
学习Python标准库的方法如下: 1. Python官方文档:Python官方文档是学习Python标准库最权威的资源之一。您可以访问Python官方网站,查找并阅读有关标准库的文档。官方文档提供了详细的说明、示例代码和用法指南,可以帮助您理解和使用各个模块。 2. 在线教程和教学资源:有许多在线教程和教学资源专门介绍Python标准库的使用。您可以通过搜索引擎找到一些受欢迎的Python学习网站、博客和视频教程,这些资源通常提供了实例和练习,帮助您更好地理解和应用标准库。 3. 书籍和参考资料:有许多经典的Python书籍和参考资料专门介绍Python标准库的使用。例如,《Python标准库》、《Python Cookbook》等。阅读这些书籍可以帮助您系统地学习各个模块,并了解它们的用法和最佳实践。 4. 实践项目:通过实际项目来应用Python标准库是最有效的学习方法之一。挑选一个感兴趣的项目,尽量使用标准库中的模块来解决问题。这样可以让您在实践中加深对标准库的理解,并了解如何将其应用于实际场景。 5. 参与社区和讨论:参与Python社区和在线讨论论坛可以帮助您与其他开发者交流经验和学习资源。您可以加入Python官方论坛、技术社区或者参加本地的Python用户组活动,与其他开发者分享和探讨使用标准库的经验。 记住,学习Python标准库需要时间和实践,不要急于求成。通过不断的学习和实践,您会逐渐掌握各个模块的功能和用法,并能够灵活地运用它们来解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值