如何使用Python复制XML文件并修改后保存到本地桌面?
实现XML文件复制修改并保存到桌面的方案
你的代码存在两个关键问题:一是mytree变量未定义,二是直接写入原文件会覆盖原始内容,无法保留副本。以下是完整的实现方案:
核心步骤
- 读取原始XML文件
- 对XML内容执行所需修改操作
- 获取系统桌面路径,将修改后的内容保存到桌面的新文件中(不覆盖原文件)
完整代码
import xml.etree.ElementTree as ET import os # 获取跨系统通用的桌面路径(适配Windows、Mac、Linux) desktop_path = os.path.join(os.path.expanduser("~"), "Desktop") # 原始XML文件路径(若文件不在脚本同目录,请填写完整路径) original_xml = 'test.xml' # 桌面保存的新文件名(可自定义) saved_xml = os.path.join(desktop_path, 'modified_test.xml') # 读取原始XML文件 tree = ET.parse(original_xml) root = tree.getroot() # ---------------------- 此处编写你的修改逻辑 ---------------------- # 示例1:修改指定标签的文本内容 for item in root.findall('product'): # 替换为你XML中的实际标签名 item.find('price').text = '99.9' # 示例2:新增一个子标签 new_tag = ET.SubElement(root, 'update_info') new_tag.text = '2024-05-20 已更新内容' # --------------------------------------------------------------- # 将修改后的内容保存到桌面新文件 tree.write(saved_xml, encoding='utf-8', xml_declaration=True)
关键说明
- 用
os.path.expanduser("~")获取用户主目录再拼接Desktop,确保在不同操作系统下都能正确定位桌面路径 - 保存时指定
encoding='utf-8'和xml_declaration=True,避免出现乱码或缺失XML头部声明的问题 - 必须保存到新文件名(如示例中的
modified_test.xml),这样原始文件会被保留,修改后的内容存于桌面副本中 - 修改逻辑需根据你的实际XML结构调整,比如
findall和find中的标签名要与XML元素完全匹配
内容的提问来源于stack exchange,提问作者Starlight
相关产品推荐
相关产品推荐

