将图像注释XML文件转换为TXT文件

时间:2019-07-03 07:03:52

标签: xml python-3.x text

我有一些带有图像注释数据的xml文件。我想将这些xml文件转换为.txt文件。

我制作了将xml中的xml转换为txt文件的脚本,但是遇到了错误

from xml.etree.ElementTree import ElementTree
import sys
import os
import glob
from glob import glob

def read_xml(f,op):

    if not os.path.exists(op):
        os.makedirs(op,exist_ok=True)

    file_n = glob(f)
    for i in range(len(file_n)):
        xcontent = ElementTree()
        xcontent.parse(file_n[i])

        doc = [xcontent.find("folder").text,xcontent.find("filename").text,xcontent.find("path").text,xcontent.find("width").text,
            xcontent.find("height").text,xcontent.find("depth").text,xcontent.find("name").text,xcontent.find("xmin").text,
            xcontent.find("ymin").text,xcontent.find("xmax").text,xcontent.find("ymax").text]


        out = open(file_n[i]+".txt","w")
        out.write(op)



if __name__ == '__main__':

    files=("C:\\multi_cat_3\\models\\research\\object_detection\\images\\train_xmls\\*")
    op_path=("C:\\multi_cat_3\\models\\research\\object_detection\\images\\train_xmls_op")

    read_xml(files,op_path)

错误是:

Traceback (most recent call last):
  File "C:/Users/128938/PycharmProjects/augmentation_code/test_file.py", line 32, in <module>
    read_xml(files,op_path)
  File "C:/Users/128938/PycharmProjects/augmentation_code/test_file.py", line 17, in read_xml
    doc = [xcontent.find("folder").text,xcontent.find("filename").text,xcontent.find("path").text,xcontent.find("width").text,
AttributeError: 'NoneType' object has no attribute 'text'

1 个答案:

答案 0 :(得分:0)

  

“ NoneType”对象没有属性“文本”

您正在使用.text值调用None。这意味着您的.find()呼叫之一未找到任何内容。

使用辅助函数来提取文本值,如下所示:

def text_content(element):
    if element:
        return element.text
    return ''

然后

text_content(xcontent.find("folder"))