Поиск подстроки не возвращает ожидаемый результат - PullRequest
0 голосов
/ 08 июля 2019

Я пишу функцию, которая должна импортировать текстовый файл, а затем перебирать каждую строку, чтобы найти строки, содержащие строку «text5».Я написал код, который выглядит правильно (для меня), но я не получаю ожидаемый результат.Когда я запускаю программу, я получаю много строк, которые не совпадают.Однако, если я изменю ввод для метода find на «5», он, кажется, будет работать правильно.

Что мне здесь не хватает?

with open(filename) as file_object:
    for line in file_object:
        if 'Text5' in line:
            print(line)

1 Ответ

1 голос
/ 08 июля 2019

Из документации Python метод find() следует использовать только в том случае, если вам нужно знать положение подстроки.Чтобы проверить, находится ли подстрока в строке, используйте оператор in.

Вы должны использовать if 'text5' in line: в соответствии с документацией, и она будет работать.Я думаю, что происходит, даже если нет совпадения с использованием find(), оно вернет -1, и оператор if оценивает это как True.

Единственное время find() будет оцениваться как False, если sub-строка, которую вы ищете, это индекс 0, так как он вернет значение 0. Любое другое значение индекса - True.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...