Как читать большие XML-файлы в Python без проблем с памятью

Я пытаюсь прочитать XML-файл "Comments.xml", который почти 19 ГБ, но он дает ошибку памяти. Я пробовал это в каждой IDE, но ничего не работает. у меня есть 4 ГБ оперативной памяти. Я также искал, гуглил, но не нашел никакой подсказки:/ мой код

Я пробовал это в каждой IDE, но ничего не работает. Я также искал, гуглил, но не нашел никакой подсказки:/

import xml.etree.ElementTree as ET
tree = ET.ElementTree(file='Comments.xml')
root = tree.getroot()
for rows in root:
    print(rows.attrib)

когда я в течение некоторого времени запускаю флешку IDE, я получаю сообщение об ошибке: строка 598, in parse self._root = parser._parse_whole(source) MemoryError

1 ответ

i met this problem too this morning, and thankfully i found the best solution:The xmltodict

чтобы не занимать много памяти, вы можете использовать потоковый режим, вот пример:

      def handle_artist(_, artist):
    print(artist['name'])
    return True

xmltodict.parse(GzipFile('discogs_artists.xml.gz'),item_depth=2, item_callback=handle_artist)
Другие вопросы по тегам