xml_csv

xml_csv


一.介绍

目的:将批处理xml文件,将文件object下的name元素输出并提取到csv文件下。
该程序方便了深度学习样本标记物品的清算。
使用:path输出的是放置xml文件夹路径;cr.csv为文件名。


二.代码

from lxml import etree, objectify
import csv
import os

path = 'C:\\dataset\\VOC2007\\Annotations'
filelist = os.listdir(path)  # 该文件夹下所有的文件(包括文件夹)
with open('cr.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    for files in filelist:  # 遍历所有文件
        data = []
        dir = os.path.join(path, files)  # 原来的文件路径
        if os.path.isdir(dir):  # 如果是文件夹则跳过
            continue
        tree = etree.parse(dir)
        for object in tree.xpath('//object'):   # 获取object元素的内容
            # print(object.getchildren()[0].text)  # 获取name元素的内容
            data.append(object.getchildren()[0].text)
        # print(data)
        data = [tuple(data)] # 数组先转元组再转数组,变为以元组为元素的数组
        writer.writerows(data)

三.效果:


xml_csv_第1张图片
Figure 1. 效果

你可能感兴趣的:(python)