我目前正在处理此代码,该代码从XML输入文件创建摘要。但是,摘要会获取文件末尾的无关信息。例如,我想读取XML文件的所有行,除非它到达以下字符串标题“注意APPELLANT”。我想忽略该字符串标题后面的所有行。
另外,我正在以二进制模式读取文件,因为XML文件格式不正确。那么有一种方法可以在二进制模式下读取文件时执行此操作。
答案 0 :(得分:0)
这是我从你的问题中理解的: 一旦遇到子字符串"通知APPELLANT"您想停止阅读您正在以二进制模式阅读的文件。我很困惑你是否想要读取包含子字符串后面的子字符串的行。但我假设您不想在包含此子字符串的行之后读取行。
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转换为二进制类型但仍然不那么困难的部分之外,大多数代码都很容易理解。