逐行搜索html文件中的字符串

时间:2019-04-16 10:13:28

标签: python-3.x

所以我有一个html文件,我正在读取文件的前四行,并将它们与字符串“ <\ html>”进行比较。由于某种原因,程序无法找到该字符串。 (没有“ \”是要搜索的字符串)

我尝试将每一行保存为字符串,然后将其与要搜索的字符串进行比较,但这仍然行不通。

def search():
    with open('cate.html') as ht:
        for cnt, line in enumerate(ht):
            if line is '<html>':
                print("found")

找到html时,程序应该只打印找到的内容。 html文件的前四行是:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />

我也尝试使用print(line)打印html文档的每一行,并且有效。

1 个答案:

答案 0 :(得分:0)

  • break语句应放在if line is '<html>':内,这样for循环仅在存在匹配项时才中断。
  • 文件中的行包含换行符(并且可能包含空格)。使用line.strip()删除结尾的字符。
  • is运算符不测试两个变量是否具有相同的值,而是测试它们是否指向相同的对象。使用==比较值。

有效的实现方式:

def search():
  with open('cate.html') as ht:
    for cnt, line in enumerate(ht):
      print(line.strip())
      if cnt < 4:
        if line.strip() == '<html>':
          print("found")
          break

输出:

<!DOCTYPE html>
<html>
found