ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как легко подсчитывать символы и слова в текстовых файлах с помощью Python

Как легко подсчитывать символы и слова в текстовых файлах с помощью Python

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

Основная идея проста. Вы открываете файл, читаете его содержимое, а затем используете встроенные функции Python для подсчета символов и слов.

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

Давайте начнем.

 

Подсчет символов

Подсчет символов в Python включает в себя подсчет каждого символа в тексте, включая пробелы, знаки препинания и (необязательно) символы новой строки. Функция len() упрощает подсчет символов.

 

Пример 1: включение новых строк

Чтобы получить общее количество символов, включая символы перевода строки, вы можете использовать len() функцию для содержимого файла:

with open('file.txt', 'r') as file:
    contents = file.read()
    char_count = len(contents)

 

Это даст вам полное количество символов, считая каждый символ новой строки как отдельный символ.

 

Пример 2: Исключение перевода строк

Если вы хотите исключить символы перевода строки из подсчета, вы можете использовать метод replace(), чтобы удалить их перед получением длины:

with open('file.txt', 'r') as file:
    contents = file.read()
    char_count = len(contents.replace('\n', ''))

 

Теперь количество символов будет включать только фактическое текстовое содержимое, без символов перевода строки.

 

Подсчет слов

Подсчитать количество слов в текстовом файле несложно. Метод Python split() разбивает строку на список слов на основе пробелов. Подсчитав длину этого списка, вы можете легко определить количество слов в тексте.

Вот простой пример:

Чтобы подсчитать количество слов, вы можете разделить содержимое файла на пробелы (табуляции, переводы строк) и подсчитать результирующий список слов:

with open('file.txt', 'r') as file:
    contents = file.read()
    word_count = len(contents.split())

 

Это даст вам общее количество слов в файле.

Давайте объединим эти функции в единый скрипт на Python, который отображает общее количество слов и символов для данного файла.

 

Полный скрипт на Python для подсчета символов и слов в текстовом файле

Загрузите полный скрипт на Python, который отображает количество символов и слов для данного файла со страницы GitHub’s gist:

#!/usr/bin/env python

# ------------------------------------------------------------------
# Script Name:   txtcwcount.py
# Description:   A Python Script to Count Characters and Words
#                in a Plain Text File.
# Website:       https://gist.github.com/ostechnix
# Version:       1.0
# Usage:         python txtcwcount.py filename
# ------------------------------------------------------------------

import sys

def count_words_chars(file_path):
    with open(file_path, 'r') as file:
        contents = file.read()
        
    word_count = len(contents.split())
    char_count = len(contents)
    
    return word_count, char_count

def main():
    if len(sys.argv) < 2:
        print("Usage: python file_counter.py <file_path>")
        return

    file_path = sys.argv[1]
    
    word_count, char_count = count_words_chars(file_path)
    
    print("="*50)
    print(f"File: {file_path}")
    print(f"Character Count: {char_count}")
    print(f"Word Count: {word_count}")
    print("="*50)

if __name__ == "__main__":
    main()

 

Чтобы использовать этот скрипт, либо загрузите файл cwcount.py с нашей страницы на Github, либо скопируйте приведенный выше код, сохраните его в файл (например, txtcwcount.py) и запустите его из командной строки, передав путь к файлу в качестве аргумента:

python txtcwcount.py file.txt

 

Затем скрипт отобразит количество символов (включая переводы строк) и количество слов для указанного файла.

 

Пример вывода:

Как легко подсчитывать символы и слова в текстовых файлах с помощью Python
Подсчитывайте символы и слова в текстовых файлах с помощью Python

Как вы можете видеть, в 23 файле есть 6 символы и file.txt слова.

Давайте проверим содержимое file.txt:

Как легко подсчитывать символы и слова в текстовых файлах с помощью Python
Просмотр содержимого файла

Подсчитайте символы (включая переводы строк и пробелы) и слова, чтобы проверить, совпадает ли количество с вашими выводами.

Как уже говорилось, чтобы исключить символы новой строки из подсчета символов, мы можем использовать len(contents.replace('\n', '')) подход вместо просто len(contents).

Ключевое изменение внесено в функцию count_words_chars() в скрипте:

char_count = len(contents.replace('\n', ''))

 

Это заменяет все символы новой строки (\n) пустой строкой, эффективно удаляя их из расчета количества символов.

Теперь результат будет выглядеть следующим образом:

==================================================
File: file.txt
Character Count: 21
Word Count: 6
==================================================

 

Подход по умолчанию: подсчет символов, включая новые строки

В общем, поведение по умолчанию для подсчета символов в программировании заключается в включении символов новой строки.

Это объясняется тем, что символы новой строки являются частью содержимого файла и должны учитываться при определении общего количества символов. Они представляют важную информацию о структуре и форматировании текста, и исключение их из подсчета символов не даст полной картины.

Однако существуют допустимые варианты использования, когда вы можете захотеть исключить символы новой строки из подсчета символов, особенно когда символы новой строки не являются основным объектом анализа. Например, если вас интересует визуальная длина текстового содержимого, исключение символов новой строки может быть более подходящим.

В этом руководстве я показал примеры включения и исключения символов новой строки при подсчете символов. Это дает вам возможность гибко выбирать подход, который наилучшим образом соответствует вашим потребностям. Если у вас нет специального требования по исключению символов перевода строки, по умолчанию и более распространенным подходом было бы включить их в число символов.

 

Заключение

Этот скрипт на Python позволяет легко подсчитать количество слов и символов в текстовом файле с возможностью включать или исключать символы новой строки в зависимости от ваших потребностей.

Являетесь ли вы писателем, разработчиком или кем-то, кому нужно анализировать текстовые файлы, этот скрипт может стать ценным инструментом в вашем наборе инструментов. Попробуйте и дайте мне знать, если у вас возникнут какие-либо вопросы!

Exit mobile version