Kак сделать вывод всего текста из файла
Короче, писал код на поиск данных в текстовом файле, пользователя спрашивают что нужно найти и это ищется в файле, но работает не так, как я хотел.
Допустим значение 1, и код должен выводить все 1, то есть, если содержимое текстового файла числа от 1-20, то выводиться должны: 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 (это отдельные строки в файле).
Код:
search = input('запрос:')
f = open('test.txt', encoding='utf-8')
result = f.read()
f.close()
c = result.count(search)
while c > 0:
print(search)
c = 1
Ответы (2 шт):
Вот:
search = input('Запрос: ')
with open('test.txt', encoding='utf-8') as file:
lines = file.readlines()
[print(line.strip(), end=' ') for line in lines if line.count(search)]
search = input('запрос: ')
with open('test.txt', encoding='utf-8') as f:
for line in f:
if search in line:
print(line) # или print(line[:-1]) или print(line.strip())
Объяснение:
Лучше применить
with, чем вручную закрывать файл. Файл закроется автоматически после выхода изwith.search in lineзначит, что строкаsearchнаходится в строкеline, чего вы и хотите.В переменной
lineбудет вся строка, включая символ перехода на новую строку (\n). Потому для отсутствия лишней пустой строки после каждогоprint(line)может быть более удобным вывести отдельные строки без последнего символа:print(line[:-1])илиprint(line.strip()).