Как остановить чтение строк из файла 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 в двоичный тип, но это все же не так сложно.