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())
.