You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何强制ElementTree在指定目录查找XML文件?问题分析与解决

问题原因
  • 你写的check_xml(x)函数虽然接收了目录参数x,但函数内部完全没用到这个参数!直接硬编码了ET.parse('sample.xml'),所以ElementTree只会在当前程序运行的工作目录里查找文件,自然就忽略了你传入的指定目录。
  • 补充说明:相对路径的查找基准是程序的当前工作目录,不一定是脚本文件所在的目录,这也是你误以为ET只搜索脚本自身目录的原因。
修复方法

修改classes.py中的check_xml函数,把传入的目录和文件名拼接成完整路径,推荐用os.path.join处理跨平台的路径分隔符问题:

import os
import xml.etree.ElementTree as ET

def check_xml(x):
    # 拼接指定目录与文件名,生成完整路径
    xml_full_path = os.path.join(x, 'sample.xml')
    tree = ET.parse(xml_full_path)
    root = tree.getroot()

    print(tree)

如果后续要处理目录下所有XML文件,可以结合glob模块实现批量处理:

import os
import glob
import xml.etree.ElementTree as ET

def check_xml(x):
    # 获取指定目录下所有XML文件的完整路径
    all_xml_files = glob.glob(os.path.join(x, '*.xml'))
    for file_path in all_xml_files:
        tree = ET.parse(file_path)
        root = tree.getroot()
        print(f"正在处理文件:{file_path}")
        # 在这里添加你的XML处理逻辑

内容的提问来源于stack exchange,提问作者Avila

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 00:22:10