Сравнение строк Python не соответствует строке, прочитанной из файла

У меня есть текстовый файл с ключевыми словами в каждой строке, например:

foo
foo1
^^^^^^^^^
foo5
foo7

^^^^^^^^^ установлен ли флаг для разрыва цикла for после достижения:

keywords = []
    with open("keywords.txt") as f:
        for line in f:
            if line.startswith(request.GET.get('search', '')):
                keywords.append(line.lower())
            if line == "^^^^^^^^^":
                break

В приведенном выше коде второе условие никогда не выполняется (**if line == "^^^^^^^^^":**).

Я тоже пробовал is вместо == (но не ожидал, что это сработает, и это не так).

Когда я пытался line.startswith("^^^^^^"):, условие выполнено, и цикл завершен. Мне интересно почему == не работает в вышеуказанном случае.

Ищу направление и объяснение.

1 ответ

Решение

Возможно, в конце строки есть разрыв строки или другой пробел, поэтому == не сработает, если вы сначала не урежете его:

if line.strip() == "^^^^^^^^^":
Другие вопросы по тегам