построчный поиск строки в html-файле

#python-3.x

#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 найден, программа должна просто напечатать found .
Первые четыре строки html-файла:

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

Также я попытался распечатать каждую строку html-документа с помощью print (line), и это сработало.

Ответ №1:

  • 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