Вывести определённую строку из файла

file = 'f.txt'
myfile = open(file, mode='r', encoding='utf_8')
if file:
    print(myfile.readlines())

есть такой код, он открывает текстовый файл в котором номера телефонов и должен искать строку при вводе определённого номера но при этом он читает и отображает самую первую строку в независимости от того какой ввели номер, подскажите как сделать что бы при вводе номера показывало строку где содержится этот номер


Ответы (2 шт):

Автор решения: piece0f
file = 'f.txt'

myfile = open(file, mode='r', encoding='utf_8')
phones = myfile.read().splitlines() # можно .readlines(), но сохраняется '\n'

number = input()

if number in phones:
    print(number)
else:
    print('Nothing found')

myfile.close() # не забываем закрыть файл

Правильнее будет использовать конструкцию with ... as ..., которая за нас закроет файл, даже если выпадет исключение:

file = 'f.txt'

with open(file, mode='r', encoding='utf_8') as myfile:
    phones = myfile.read().splitlines() # можно .readlines(), но сохраняется '\n'

number = input()

if number in phones:
    print(number)
else:
    print('Nothing found')
→ Ссылка
Автор решения: Kers

Как вариант:

num = "56" # Искомый номер

# Читаем файл
with open("asd.txt", mode='r', encoding='utf_8') as f:
    lst = f.readlines()

# Ищем данные
for i in lst: # перебор всех элементов
    if num in i: # Проверка на наличие номера
        print(i)

Текстовый файл был составлен так:

12 qwe
21 asd
56 zxc

как понимаю что то вроде тел книги.

P.S. Если просто проверить наличие в номера в файле:

num = "56"

with open("asd.txt", mode='r', encoding='utf_8') as f:
    lst = f.read()

if num in lst:
    print(num)
→ Ссылка