Подсчет общего количества слов в нескольких файлах в каталоге — распространенная задача при анализе текста и обработке данных. В этой статье мы рассмотрим различные методы эффективного выполнения этой задачи на примерах кода. В итоге у вас будет целый ряд методов на выбор, в зависимости от ваших конкретных требований.
Метод 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, в которых используются разные модули, а третий метод использует инструмент командной строки. В зависимости от ваших конкретных потребностей и предпочтений вы можете выбрать наиболее подходящий метод для ваших задач анализа текста. Не забывайте оптимизировать свой код для повышения эффективности, особенно при работе с большими каталогами или файлами, чтобы обеспечить быстрый и точный подсчет количества слов.