Уведомления

Группа в Telegram: @pythonsu

#1 Март 11, 2022 19:49:07

BigBaldEgg
От: Обнинск
Зарегистрирован: 2022-01-20
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с подсчетом общего количества указанного слова в файлах

 from pathlib import Path
import glob
from argparse import ArgumentParser
def text_searcher(file, phrase):
    with open(file, encoding='utf8') as text:
        for num, line in enumerate(text, 1):
            if phrase in line:
                count = line.count(phrase)
                with open('report.txt', 'a+') as result:
                    result.write(f'string number: {num} total count: {count}\n')
    return count
if Path('report.txt').exists(): Path('report.txt').unlink()
parser = ArgumentParser()
parser.add_argument('directory', type=Path, help='Please enter directory')
parser.add_argument('phrase', type=str, help='Please type phrase')
args = parser.parse_args()
files = glob.glob(f'{args.directory}/*.txt', recursive=True)
sum = 0
for file in files:
    count = text_searcher(file, args.phrase)
    sum = sum + count
with open('report.txt', 'a+') as total:
    total.write('-'*32 + '\n')
    total.write(f'Total: {sum}\n')
print("Done!")
Здравствуйте формучане, работаю над программой которая при указывании какого либо слова и пути к директории в которой находятся текстовые файлы, ищет во всех текстовых файлах это слово и записывает в файл report.txt число указанных слов которые были найдены в текстовом файле, а также общее количество найденных слов во всех файлах. И вроде как работает хорошо, да вот общее количество слов во всех файлах указывает на одно меньше. То есть если у меня в 3 файлах с одинаковым текстом по 3 одинаковых слова в каждом, программа пишет не 9, а 8. Надеюсь объяснил понятно, не хочу голову вам ломать. Заранее спасибо если укажете мою ошибку и как это исправить. Я новичок

Офлайн

#2 Март 11, 2022 21:57:55

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Проблема с подсчетом общего количества указанного слова в файлах

  
def text_searcher(file, phrase):
    total = 0
    with open(file, encoding='utf8') as text:
        for num, line in enumerate(text, 1):
            if phrase in line:
                count = line.count(phrase)
                total += count
                with open('report.txt', 'a+') as result:
                    result.write(f'string number: {num} total count: {count}\n')
    return total



Офлайн

#3 Март 11, 2022 22:07:55

BigBaldEgg
От: Обнинск
Зарегистрирован: 2022-01-20
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с подсчетом общего количества указанного слова в файлах

py.user.next
Отлично! Все работает, проблема была после того как я писал одинаковое слово на следующей строке. Огромное Вам спасибо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version