我的代码无法读取 xml 文件。代码有错误吗

问题描述 投票:0回答:1

[这是我遇到的错误 ](https://i.sstatic.net/3DUyRhlD.png)

path = glob('/Users/ayeshanasim/Desktop/Major Project/*.xml')

labels_dict = dict(filepath=[], xmin=[], xmax=[], ymin=[], ymax=[])

for filename in path:


    info = ET.parse(filename)
    root = info.getroot()
    member_object = root.find('object')
    labels_info = member_object.find('bndbox')
    xmin = int(labels_info.find('xmin').text)
    xmax = int(labels_info.find('xmax').text)
    ymin = int(labels_info.find('ymin').text)
    ymax = int(labels_info.find('ymax').text)

    labels_dict['filepath'].append(filename)
    labels_dict['xmin'].append(xmin)
    labels_dict['xmax'].append(xmax)
    labels_dict['ymin'].append(ymin)
    labels_dict['ymax'].append(ymax)

df = pd.DataFrame(labels_dict)
df.to_csv('labels.csv', index=False)
df.head()

我的代码无法读取 xml 文件并在 df.head() 处打印前 5 行。我犯的错误是什么

python xml jupyter-notebook automatic-license-plate-recognition
1个回答
0
投票
import os
import xml.etree.ElementTree as ET
import pandas as pd

# Get file paths of XML files
directory = '/Users/ayeshanasim/Desktop/Major Project/'
path = [os.path.join(directory, filename) for filename in os.listdir(directory) if filename.endswith('.xml')]

labels_dict = {
    'filepath': [],
    'xmin': [],
    'xmax': [],
    'ymin': [],
    'ymax': []
}

for filename in path:
    # Print filename to debug
    print("Processing file:", filename)
    
    # Parse XML file
    try:
        info = ET.parse(filename)
        root = info.getroot()
        
        # Find all objects and iterate over them
        for member_object in root.findall('object'):
            labels_info = member_object.find('bndbox')
            xmin = int(labels_info.find('xmin').text)
            xmax = int(labels_info.find('xmax').text)
            ymin = int(labels_info.find('ymin').text)
            ymax = int(labels_info.find('ymax').text)

            # Append data to dictionary
            labels_dict['filepath'].append(filename)
            labels_dict['xmin'].append(xmin)
            labels_dict['xmax'].append(xmax)
            labels_dict['ymin'].append(ymin)
            labels_dict['ymax'].append(ymax)
    except Exception as e:
        print("Error processing file:", filename)
        print(e)

# Convert dictionary to DataFrame
df = pd.DataFrame(labels_dict)

# Write DataFrame to CSV file
df.to_csv('labels.csv', index=False)

# Display first 5 rows of DataFrame
print(df.head())

此代码处理 XML 解析期间的潜在错误,迭代每个 XML 文件中的所有对象,并打印 DataFrame 的前 5 行以进行调试。确保根据您的具体情况调整目录路径和 XML 文件结构。

© www.soinside.com 2019 - 2024. All rights reserved.