как вывести текст из двух текстовых файлов
Всем привет, писал код для поиска значений в текстовых файлов, с 1 файлом все работает прелестно, а с двумя код возмущается.
Сам код:
search = input('запрос:')
with open('test.txt','test2.txt' encoding='utf-8') as f:
result = f.read()
c = result.count(search)
print(f'Количество совпадений {c}')
input('Для вывода нажми Enter')
with open('test.txt','test2.txt' encoding='utf-8') as f:
for line in f:
if search in line:
print(line.strip())
Ошибка:
line 2, in <module>
with open('test.txt','test2.txt', encoding='utf-8') as f:
ValueError: invalid mode: 'test2.txt'
Ответы (2 шт):
Автор решения: FindMeTomorrow
→ Ссылка
Как и указали в комментариях, open
может открывать только один файл. Если необходимо открыть несколько, то можно либо использовать open
повторно, либо открывать файлы в цикле. Один из вариантов решения прилагаю. Постарался внести минимум изменений в Ваш код.
search = input('запрос:')
c = 0
for filename in ['test.txt', 'test2.txt']:
with open(filename, encoding='utf-8') as f:
result = f.read()
c = c + result.count(search)
print(f'Количество совпадений {c}')
input('Для вывода нажми Enter')
for filename in ['test.txt', 'test2.txt']:
with open(filename, encoding='utf-8') as f:
for line in f:
if search in line:
print(line.strip())
Автор решения: чистов_n - за Россию
→ Ссылка
Можно в одном with
открыть cразу два файла:
search = input('запрос:')
with open('test.txt', encoding='utf-8') as f1, open('test2.txt', encoding='utf-8') as f2:
result = f1.read() + f2.read()
c = result.count(search)
print(f'Количество совпадений {c}')
input('Для вывода нажми Enter')
with open('test.txt', encoding='utf-8') as f1, open('test2.txt', encoding='utf-8') as f2:
for f in (f1, f2):
for line in f:
if search in line:
print(line.strip())