Эффективные методы подсчета количества слов во всех файлах в каталоге

Подсчет общего количества слов в нескольких файлах в каталоге — распространенная задача при анализе текста и обработке данных. В этой статье мы рассмотрим различные методы эффективного выполнения этой задачи на примерах кода. В итоге у вас будет целый ряд методов на выбор, в зависимости от ваших конкретных требований.

Метод 1: Python с модулями os и re

import os
import re
def count_words_in_directory(directory):
    total_words = 0
    for root, _, files in os.walk(directory):
        for file in files:
            if file.endswith(".txt"):
                file_path = os.path.join(root, file)
                with open(file_path, "r") as f:
                    contents = f.read()
                    words = re.findall(r'\w+', contents)
                    total_words += len(words)
    return total_words
# Usage:
directory_path = "/path/to/directory"
word_count = count_words_in_directory(directory_path)
print("Total word count:", word_count)

Метод 2: Python с модулями glob и Counter

import glob
from collections import Counter
def count_words_in_directory(directory):
    total_words = Counter()
    for file_path in glob.glob(directory + '//*.txt', recursive=True):
        with open(file_path, "r") as f:
            contents = f.read()
            words = contents.split()
            total_words.update(words)
    return sum(total_words.values())
# Usage:
directory_path = "/path/to/directory"
word_count = count_words_in_directory(directory_path)
print("Total word count:", word_count)

Метод 3. Инструмент командной строки с использованием wc (Unix/Linux)

find /path/to/directory -type f -name "*.txt" -exec cat {} + | wc -w

Команда

для поиска всех файлов .txtв каталоге и его подкаталогах. Команда catобъединяет содержимое всех найденных файлов, а wc -wподсчитывает общее количество слов.

В этой статье мы рассмотрели три различных метода подсчета количества слов во всех файлах в каталоге. Первые два метода предоставляют примеры кода Python, в которых используются разные модули, а третий метод использует инструмент командной строки. В зависимости от ваших конкретных потребностей и предпочтений вы можете выбрать наиболее подходящий метод для ваших задач анализа текста. Не забывайте оптимизировать свой код для повышения эффективности, особенно при работе с большими каталогами или файлами, чтобы обеспечить быстрый и точный подсчет количества слов.