Как проанализировать и разбить большой файл XML на файлы меньшего размера XML с низким использованием памяти в Python? - PullRequest
0 голосов
/ 31 января 2020

Мне нужно иметь возможность разбивать большие XML файлы (длиной от 2 до 4 миллионов строк) на более мелкие XML файлы с одинаковой структурой. Мне нужно использовать python для этого. Структура XML выглядит следующим образом:

  <queue>
        <id />
        <store_id />
        <sku />
        <url />
        <items>
          <item>
            <id></id>
            <qty></qty>
            <created_at></created_at>
            <updated_at></updated_at>
            <customer_id/>
            <external_id/>
            <data>
                <City></City>
                <State></State>
                <Firstname></Firstname>
                <Lastname></Lastname>
                .......
            </data>
            <address>
                <name></name>
                <title/>
                ........
            </address>
          </item>
          <item>
          </item>
          .......
        </items>
    </queue>

Мой текущий подход заключается в использовании xml .etree.ElementTree.parse () для создания большого элемента XML, а затем I l oop через все элементов <item> внутри него, добавляя их к новому элементу XML с той же исходной структурой. Затем, после добавления X количества элементов, я записываю новый элемент XML в файл. После записи в файл я заменяю новый элемент XML на пустой и повторяю этот процесс, пока не останется никаких элементов.

Функциональность этого совершенно. Работает именно так, как я хочу, но использует очень большой объем памяти. Мне интересно, может кто-нибудь сказать мне альтернативный способ достижения моей цели, с меньшим использованием памяти.

...