Как остановить чтение строк из файла XML при достижении определенной строки с использованием языка Python

В настоящее время я работаю над этим кодом, который создает сводку из входного файла XML. Тем не менее, сводка собирает нерелевантную информацию, которая находится в конце файла. Например, я хочу прочитать все строки XML-файла, за исключением случаев, когда он достигает следующего заголовка строки "NOTICE TO APPELLANT". Я хотел бы игнорировать все строки, которые идут после этого заголовка строки.

Кроме того, я читаю файл в двоичном режиме, потому что файл XML не очень хорошо сформирован. Так есть ли способ сделать это при чтении файла в двоичном режиме.

1 ответ

Вот что я понял из вашего вопроса: вы хотели бы прекратить чтение файла, который вы читаете, в двоичном режиме, как только вы встретите подстроку "УВЕДОМЛЕНИЕ ОБ апеллянту". Я запутался, хотите ли вы прочитать строку, которая содержит подстроку после подстроки. Но я предполагаю, что вы не хотите читать строки после строки, которая содержит эту подстроку.

   with open("test_xml.xml", "rb") as f:
   ...:     for line in f:
   ...:         if b'NOTICE TO APPELLANT' in line:
   ...:             print(line) #you can replace this function call
   ...:             break
   ...:         else:
   ...:             print(line)

где мой входной файл "test_xml.xml" выглядел следующим образом...

<note>
    <to>Tove</to>
    <from>Jani</from>
        <heading>Reminder</heading>
        <body>Don't forget me this weekend!</body>
        <sometag>NOTICE TO APPELLANT</sometag>

    sd;kfposdkjfpksdf sdk sd
            ALL THESE WONT BE SCANNED/READ
            SDFKSDPFJSDHF
        OHSFOHSD
</note>

Большая часть кода проста для понимания, за исключением части, где я конвертирую str в двоичный тип, но это все же не так сложно.

Другие вопросы по тегам