我试图将我的file.readline
中的一行与一个字符串进行比较,但这不起作用。我正在阅读一个html文件,我需要解析该文件以将该部分发送到字典,但是当我使用if来比较其中一行与字符串时,它们匹配时不会返回True。
以下是代码:
lines = f.readlines()
for line in lines:
if (line == '<TEXT>'):
while (line != '</TEXT>'):
body += line + ' '
content['text' + str(i)] = body
i += 1
body = ''
答案 0 :(得分:1)
我认为这是因为它在字符串中读取新行字符尝试:
for line in f:
line = line.rstrip()
if (line == '<TEXT>'):
答案 1 :(得分:0)
不要自己解析html,而是查看this内置的python html解析器(或this for python 2)。
它可能比您自己编写的任何代码更容易,更强大。
python文档中的示例:
from html.parser import HTMLParser
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
print("Encountered a start tag:", tag)
def handle_endtag(self, tag):
print("Encountered an end tag :", tag)
def handle_data(self, data):
print("Encountered some data :", data)
parser = MyHTMLParser()
parser.feed('<html><head><title>Test</title></head>'
'<body><h1>Parse me!</h1></body></html>')
要使用此示例,只需在该类中添加一个成员,以跟踪您拥有的content
。
答案 2 :(得分:0)
确保'line'对象在开头和结尾没有空格。您可以将其剥离然后进行比较。
因为,
x='<TEXT>'
不等于y='<TEXT> '
使用line = line.strip()
然后进行比较。