python xml read write operate

本文详细介绍如何使用Python的xml.etree.ElementTree模块进行XML文件的读取、写入、节点的创建与管理。包括如何避免常见错误,如在设置节点文本时的类型转换问题。

https://stackabuse.com/reading-and-writing-xml-files-in-python/

https://docs.python.org/3/library/xml.etree.elementtree.html

 

https://github.com/python/cpython/blob/3.8/Lib/xml/etree/ElementTree.py

 

 

xml.etree.ElementTree

这个是ElementTree的官方文档,有例子介绍xml文件的append、remove、创建节点、创建子节点

http://effbot.org/zone/element-index.htm:这个有创建节点、创建字节点的官方文档

 

python xml问题:在一个element节点使用text方法时,变量不能使用非字符串,比如下图,lineMissed为int型,会报错

contentHead = ET.SubElement(incrementCoverageHtmlRoot, "tr")
lineMissedHead = ET.SubElement(contentHead, "th")
lineMissedHead.text = lineMissed

解决:int型强制类型转换为str即可

lineMissedHead.text = str(lineMissed)

 

### 解决'Refusing to operate on read-write mounted device /dev/sdb1'错误 当尝试对NTFS格式的硬盘执行操作时,如果遇到错误`Refusing to operate on read-write mounted device /dev/sdb1`,这通常是因为设备以读写模式挂载,而某些工具(如`ntfsfix`)需要设备处于只读模式才能安全地进行修复或转换操作[^1]。 为了解决此问题,可以将设备重新挂载为只读模式。使用以下命令实现: ```bash sudo mount -o remount,ro /dev/sdb1 ``` 此命令将设备从读写模式切换到只读模式,从而允许工具安全地操作磁盘。 在完成必要的修复或转换操作后,可能需要将设备重新挂载为读写模式。可以使用以下命令实现: ```bash sudo mount -o remount,rw /dev/sdb1 ``` 需要注意的是,在将NTFS格式的硬盘转换为EXT格式时,必须确保数据已备份,因为文件系统转换通常涉及重新初始化磁盘结构,这会导致数据丢失。为了安全起见,建议先卸载设备,然后使用`mkfs.ext4`工具创建新的EXT4文件系统。例如: ```bash sudo umount /dev/sdb1 sudo mkfs.ext4 /dev/sdb1 ``` 此外,如果在挂载NTFS分区时遇到类似`Error mounting /dev/sda1 at /media/XXXX`的问题,可能是由于缺少`ntfs-3g`驱动程序导致的。可以通过安装`ntfs-3g`来解决此问题: ```bash sudo apt-get install ntfs-3g ``` 最后,若设备仍然无法正常挂载或操作,可以尝试使用`fdisk`工具检查分区表是否损坏,并使用`chkdsk`(在Windows系统中)或`ntfsfix`(在Linux系统中)修复分区。 ### 示例代码 以下是一个完整的示例,展示如何处理上述错误并转换文件系统: ```bash # 将设备重新挂载为只读模式 sudo mount -o remount,ro /dev/sdb1 # 使用ntfsfix修复NTFS分区(可选) sudo ntfsfix /dev/sdb1 # 卸载设备 sudo umount /dev/sdb1 # 创建新的EXT4文件系统 sudo mkfs.ext4 /dev/sdb1 # 重新挂载设备为读写模式 sudo mount -o remount,rw /dev/sdb1 ``` ### 注意事项 在执行任何磁盘操作之前,请确保正确识别目标设备(如`/dev/sdb1`),以免误操作导致数据丢失。此外,定期备份重要数据是防止意外损失的有效方法。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值