Как читать большие 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)