У меня есть XML файлы размером от сотен мегабайт до десятков гигабайт, и я использую Python's
cElementTree
для их обработки. Из-за ограниченной памяти и низкой скорости я не хочу загружать все содержимое в память, используя метод et.parse
, затем find
или findall
, чтобы определить, существует ли тег (на самом деле я не пробовал таким образом). Теперь я просто использую et.iterparse
, чтобы перебрать все теги для достижения этой цели. В случае, если тег расположен близко к концу файла, это также может быть очень медленным. Интересно, существует ли лучший способ добиться этого и получить местоположение тега? Если я знаю верхний уровень (например, индекс), в котором находится тег, размер которого намного меньше, чем у других частей файла, возможно ли выполнить итерацию по тегу верхнего уровня, а затем нацелить эту часть на анализ? Я искал в Интернете, но, как ни странно, никаких связанных вопросов не опубликовано. Я что-то пропустил? Заранее спасибо.