#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