Я хочу конвертировать XML-файлы в текстовый файл с помощью Python - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть XML-файл как

<annotation>
    <folder>all_images</folder>
    <filename>0.jpg</filename>
    <path>/home/vishnu/Documents/all_images/0.jpg</path>
    <source>
        <database>Unknown</database>
    </source>
    <size>
        <width>4250</width>
        <height>5500</height>
        <depth>1</depth>
    </size>
    <segmented>0</segmented>
    <object>
        <name>word</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>308</xmin>
            <ymin>45</ymin>
            <xmax>502</xmax>
            <ymax>162</ymax>
        </bndbox>
    </object>

Я хочу преобразовать этот xml-файл в текстовый файл, используя python, где текстовый файл содержит измерения (значения) xmin, ymin, xmax, ymax. Например. Я хочу получить текстовый файл как

308,45,502,45,502,162,308,162, слово

663,52,823,52,823,173,663,173,word

521,44,621,44,621,158,521,158,word 

это. У меня есть несколько таких xml-файлов, я хочу преобразовать их в текстовые файлы. Также хочу зациклить их на количество таких файлов.

1 Ответ

0 голосов
/ 12 ноября 2018

Предполагается, что у вас есть файл с именем file.xml, содержащий:

<annotation>
    <folder>all_images</folder>
    <filename>0.jpg</filename>
    <path>/home/vishnu/Documents/all_images/0.jpg</path>
    <source>
        <database>Unknown</database>
    </source>
    <size>
        <width>4250</width>
        <height>5500</height>
        <depth>1</depth>
    </size>
    <segmented>0</segmented>
    <object>
        <name>word</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>308</xmin>
            <ymin>45</ymin>
            <xmax>502</xmax>
            <ymax>162</ymax>
        </bndbox>
    </object>
</annotation>

Затем следующий скрипт Python в той же папке дает вам представление о том, как использовать стандартную библиотеку ElementTree API для анализа файла:

import xml.etree.ElementTree as ET

tree = ET.parse("file.xml")
root = tree.getroot()

print(root.find("./folder").text)
print(root.find("./object/name").text)
print(root.find("./object/bndbox/xmin").text)

Вам нужно будет разобраться, как записать значения в ваши собственные текстовые файлы, но это должно быть просто. Есть много ресурсов, таких как этот .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...