Как вернуть данные из анализатора Python SAX?

Я пытался разобрать некоторые огромные XML-файлы, которые LXML не получит, поэтому я вынужден анализировать их с помощьюxml.sax.

class SpamExtractor(sax.ContentHandler):
    def startElement(self, name, attrs):
        if name == "spam":
            print("We found a spam!")
            # now what?

Проблема в том, что я не понимаю, как на самом делеreturn, или лучше,yieldвещи, которые этот обработчик находит для вызывающей стороны, не дожидаясь анализа всего файла. До сих пор я возился сthreading.Thread а такжеQueue.Queue, но это приводит ко всевозможным проблемам с потоками, которые действительно отвлекают меня от проблемы, которую я пытаюсь решить.

Я знаю, что могу запустить парсер SAX в отдельном процессе, но я чувствую, что должен быть более простой способ получить данные. Есть?

Ответы на вопрос(4)

Ваш ответ на вопрос