无法将file.readline()行与字符串

时间:2017-05-13 08:06:44

标签: python text

我试图将我的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 = ''

3 个答案:

答案 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()然后进行比较。