Python — подсчитать количество слов в текстовом файле

Содержание

  • Введение
  • Шаги для подсчета количества слов в текстовом файле
  • Пример 1: подсчет количества слов
  • Пример 2: подсчет количества слов в текстовом файле с несколькими строками
  • Резюме

Python — подсчет количества слов

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

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

Шаги по подсчету количества слов в текстовом файле

Чтобы подсчитать количество слов в текстовом файле, выполните следующие действия.

  1. Откройте файл в режиме чтения и обработайте его в текстовом режиме.
  2. Прочтите текст с помощью функции read ().
  3. Разделите текст, используя пробел. Мы предполагаем, что слова в предложении разделены пробелом.
  4. Длина разделенного списка должна равняться количеству слов в текстовом файле.
  5. Вы может уточнять счет, очищая строку перед разделением или проверяя слова после разделения.

Пример 1: Подсчет количества слов

В этом примере Python мы прочитаем текстовый файл и подсчитаем количество слов в нем. Рассмотрим следующий текстовый файл.

Текстовый файл

  Добро пожаловать на pythonexamples.org.  Здесь вы найдете программы Python для всех общих случаев использования.  

Программа Python

  file = open ("C:  data.txt", "rt") data = file.read () words = data.split () print ('Количество слов в текстовом файле:', len (слова))  

  Количество слов в текстовом файле: 14  

Пример 2: Подсчет количества слов в текстовом файле с несколькими строками

В этом примере Python мы прочитаем текстовый файл с несколькими строками и посчитаем количество слов в Это. Рассмотрим следующий текстовый файл.

Символ новой строки разделяет строки в текстовом файле. Новая строка — это пробел, и когда мы разделяем все данные в текстовом файле с помощью метода split (), все слова во всех предложениях разделяются и возвращаются в виде единого списка.

Текстовый файл — data.txt

  Добро пожаловать на сайт www.pythonexamples.org.  Здесь вы найдете программы Python для всех общих случаев использования. Это еще одна строка с несколькими словами.  

Программа Python

  file = open ("C:  data.txt", "rt") data = file.read () words = data.split () print ('Количество слов в текстовом файле:  ', len (слова))  

  Количество слов в текстовом файле  : 21  

Резюме

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

Популярные учебники

  • Диапазон Python
  • Список Python — найти индекс элемента
  • Python OpenCV — изменить размер изображения
  • Python OpenCV — показать изображение
  • Python OpenCV — прочитать изображение
  • Заменить строку в файле
  • Python — Создать каталог
  • Pandas DataFrame — Добавить столбец
  • Pandas DataFrame — Добавить строку
  • Pandas — DataFrame в Numpy Array


Создание счетчика слов в Python

Введение: начните здесь

Установка необходимых для книги библиотек

Начинайте здесь:

Создайте счетчик слов в Python

Введение в Numpy и Matplotlib

Введение в Pandas с практическими примерами (новинка)

Главный Boo k

Обработка изображений и видео в Python

Анализ данных с помощью Pandas

Обработка аудио и цифровых сигналов (DSP)

Управляйте Raspberry Pi с вашего телефона/планшета

Раздел машинного обучения

Машинное обучение с помощью Amazon, подобного модулю рекомендаций

Новые возможности машинного обучения

Машинное обучение для начинающих: Узнайте, как с помощью машинного обучения предсказать, сколько выживших уцелевших на Титанике. Никаких предварительных знаний не требуется!

Перекрестная проверка и выбор модели : в котором мы рассмотрим перекрестную проверку и способы выбора между различными алгоритмами машинного обучения. Работа с набором данных о цветках ириса и набором данных о диабете Пима.

Обработка естественного языка

0. Введение в НЛП и анализ настроений

1. Обработка естественного языка с помощью NTLK

2. Введение в NTLK, часть 2

3. Создайте программу анализа настроений.

4. Анализ настроений с помощью Twitter

5. Анализ корпуса электронной почты Enron . В корпусе электронной почты Enron содержится полмиллиона файлов размером более 2,5 ГБ. При просмотре данных такого размера возникает вопрос, с чего вообще начать?

6. Создайте фильтр спама с помощью Enron Corpus.



Эта глава предназначена для тех, кто плохо знаком с Python, но Я рекомендую всем пройти через это, чтобы мы все были в равных условиях.

Детские шаги: прочтите и распечатайте файл

Хорошо, ребята, мы собираемся начать нежный. Мы создадим простую утилиту под названием счетчик слов. Те из вас, кто использовал Linux, знают это как утилиту wc. В Linux вы можете ввести:

1
wc

, чтобы получить количество слов, строк и символов в файле. Утилита wc, конечно, довольно продвинутая, поскольку существует уже давно. Мы собираемся создать его маленькую версию. Это более интересно, чем просто выводить на экран Hello World .

Имея это в виду, давайте начнем. Мы работаем с файлом read_file.py, который находится в папке Wordcount.

1
2
#!/usr /bin/python

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

Начнем глядя на код.

1
2
f = open («birds.txt», » r «)

Мы просто открываем файл с именем birds.txt. Он должен существовать в текущем каталоге (то есть в каталоге, из которого вы запускаете код). Позже мы рассмотрим чтение из командной строки, но пока путь жестко запрограммирован. Знак r означает, что файл будет открыт в режиме только для чтения. Другие распространенные режимы: w для записи, a для добавления. Вы также можете читать/писать двоичные файлы, но мы пока не будем углубляться в это. Наши файлы представляют собой обычный текст.

1
2
3
data = f.read ()
f.close ()

После открытия файла мы считываем его содержимое в переменную с именем data и закройте файл.

1
2
печать (данные)

И печатаем файл. А теперь, чтобы проверить наш код.
Если вы работаете в Linux, вы можете просто набрать:

1
2
. /read_file.py

, чтобы запустить его. Возможно, вам придется сделать файл исполняемым. В Windows вам необходимо сделать:

1
2
python read_file.py

Перейдите в папку WordCount и запустите файл там:

1
2
3
4
5
6
7
8
9
10
11
12
13
python ./read_file.py
STRAY BIRDS
BY
ТАГОРА РАБИНДРАНАТА
Бездомные летние птицы подходят к моему
окну, чтобы петь и улетать.
А желтые осенние листья, у которых
нет песен, порхают и падают там
со вздохом.

И готово. Ваша первая программа на Python.

Подсчет слов и строк

Итак, мы можем прочитать файл и распечатать его на экране. Теперь посчитаем количество слов. Мы будем использовать файл count_words.py в папке WordCount.

1
2
3
4
5
6
#! /usr/bin/python
f = open («birds.txt», «r»)
data = f .read ()
f. close ()

Эти строки должны быть вам знакомы. Открываем файл и читаем.

1
2
words = data.split («»)

Python имеет несколько встроенных функций для строк. Одна из них — это функция split () , которая разбивает строку по заданному параметру. В приведенном выше примере мы разделяем пространство. Функция возвращает список (который Python называет массивами) строки, разделенной по пространству.

Чтобы увидеть, как это работает, я запускаю консоль IPython.

1
2
3
4
В [1]: «Я мальчик» .split («»)
Out [1]: [‘Я’, ‘я’, ‘а’, ‘мальчик’]

Я взял предложение «Я мальчик» и разбить его на пробел. Python вернул список из четырех элементов: [‘I’, ‘am’, ‘a’, ‘boy’] .
Мы можем разделить на что угодно. Здесь я разделяю запятую:

1
2
3
4
В [2 ]: «Птицы, они улетают, — сказал он.». Split («,»)
Out [2]: [‘The birds’ , «они улетают», — сказал он.]

Возвращаясь к нашему примеру:

1
2
words = data.split («»)

Вы должны знать, что мы сейчас делаем. Мы разбиваем прочитанный файл на пробелы. Это должно дать нам количество слов, так как в английском языке слова разделены пробелом (как будто вы еще не знали).

1
2
3
4
5
print («Слова в тексте:»)
print (words)
num_words = len (слова)
print («Количество слов равно», num_words)

Итак, мы печатаем найденные слова. Затем мы вызываем функцию len () , которая возвращает длину списка. Помните, я сказал, что функция split () разбивает строку на список? Что ж, используя функцию len () , мы можем узнать, сколько элементов в списке и, следовательно, количество слов.

Затем мы находим количество строк, используя тот же метод.

1
2
3
4
5
lines = data.split (» n»)
print («Строки в тексте:»)
print (lines)
print («Количество строк», len (строк))

Мы делаем то же самое, за исключением того, что разделяем на символ новой строки (« n»). Для тех, кто не знает, символ новой строки — это код, который говорит редактору вставить новую строку, возврат. Подсчитав количество символов новой строки, мы можем получить количество строк в программе.

Запустите файл count_words.py и посмотрите результаты.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
python. count_words. py
В тексте есть следующие слова:
[‘STRAY’, ‘BIRDS’, ‘ nBY’, ‘ nRABINDRANATH ‘,’ TAGORE ‘,’ n nSTRAY ‘,’ birds ‘,’ of ‘,’ summer ‘,’ come ‘,’ to ‘,’ my ‘,’ nwindow ‘,’ to ‘,’ пой ‘,’ и ‘,’ летать ‘,’ прочь. ‘,’ n nИ ‘,’ желтый ‘,’ листья ‘,’ из ‘,’
осень, ‘,’ который ‘,’ nhave ‘,’ нет ‘,’ песни, ‘,’ flutter ‘,’ and ‘,’ fall ‘,’ there ‘,’ nwith ‘,’ a ‘,’ sigh.]
Количество слов — 34
Строки в тексте:
[‘Бездомные птицы’, ‘BY’, ‘RABINDRANATH TAGOR Э ‘,’ ‘,’ Бездомные летние птицы прилетают ко мне ‘,’ окно петь и улетать. ‘,’ ‘,’ И желтые осенние листья, которые ‘,’ не имеют песен, трепещут и падают
ere ‘,’ со вздохом. ‘]
Количество строк — 10

Теперь откройте файл birds.txt и вручную подсчитайте количество строк. Вы обнаружите, что ответы разные. Это потому, что в нашем коде есть ошибка. Он также считает пустые строки. Сейчас нам нужно это исправить.

Исправлено количество строк

1
2
3
4
5
6
7
8
9
10
#! /usr/bin/python
f = open («birds.txt», «r»)
data = f .read ()
f.close ()
lines = data. split (» n»)
print («Неправильно: количество строк равно», len (строк))

Это старый код, который нам нужно исправить.

Цикл For в Python

Синтаксис цикла for:

1
2
для в :

Несколько ключевых моментов. После инструкции стоит двоеточие (:). А в Python нет скобок {} или ключевых слов в начале. Например, если вы пришли из мира типов C/C ++/Java/C #, вы должны написать свой цикл for следующим образом:

1
2
3
4
for (i = 0; i
{
}

Фигурные скобки {} сообщают компилятору, что этот код находится в цикле for. В Python этих скобок нет. Вместо этого он использует пробелы/отступы. Если вы не используете отступы, Python пожалуется. Пример:

1
2
3
4
5
6
для i в диапазоне (5):
print (i)
Файл «», строка 2
print (i)
^
IndentationError: ожидается блок с отступом

Правильный способ сделать это:

1
2
3
4
5
6
7
8
для i в диапазоне (5):
print (i)
0
1
2
3
4

Какой отступ использовать? Рекомендуется четыре пробела. Если вы используете хороший текстовый редактор, такой как Sublime Text, он сделает это автоматически.
Возвращаясь к нашему коду,

1
2
3
для l в строках:
если не l:
lines.remove (l)

Давайте пройдемся по этой строке за строкой.

1
2
для l в строках:

Мы просматриваем наш список строк . l будет содержать каждую строку, поскольку Python перебирает их в цикле.

В качестве примечания, те из вас, кто работает с C/C ++, вы будете удивлены тем, что мы не используем массивы. Нам не нужно — Python сделает это за нас автоматически. Python возьмет список строк и автоматически переберет его. Нам не нужно делать lines [0] , lines [1] , lines [2] и т. Д., Например вы бы сделали на C/C ++. Фактически, это антипаттерн.

Итак, теперь у нас есть каждая строка. Теперь нам нужно проверить, пуст ли он. Есть много способов сделать это. Один из них:

1
2
если len (l) == 0:

Это проверяет, имеет ли текущая строка длину 0, и это нормально, но есть более элегантный способ сделать это.

1
2
если не l:
lines.remove (l)

Ключевое слово not в Python автоматически проверяет наличие пустоты для нас. . Если строка пуста, мы удаляем ее из списка с помощью команды remove () .

Опять же, как и в цикле for, нам нужно указать четыре пробела чтобы сообщить Python, что эта инструкция выполняется при условии if.

Теперь у нас должно быть правильное количество строк. Запустите count_lines_fixed.py , чтобы увидеть результаты.

1
2
3
4
5
python. Count_lines_fixed.py
Неправильно: количество строк 10
Справа: количество строк 8

Собираем все вместе

Теперь нам нужно связать все вместе. word_count.py — наш последний файл.

1
2
3
#! /usr/bin/python
import sys

Единственное новое здесь — это import sys команда. Это необходимо для чтения из командной строки.

Теперь мы разберем наш код на функции. Способ написать функцию на Python:

1
2
3
def foo ():
return

def определяет функцию. Обратите внимание на двоеточие (:) и пробел? Подобно циклам и условиям if , вам нужно использовать отступ для кода в цикле for.

Наша первая функция подсчитывает количество слов:

1
2
3
4
def count_words (data):
words = data. split («»)
num_words = len (words)
return num_words

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

Функция подсчета строк аналогична:

1
2
3
4
5
6
7
def count_lines ( data):
lines = data.split (» n»)
для l в строках:
если не l:
lines.remove (l)
return len (lines)

Следующая часть — одна из самых популярных в Google строк:

1
2
if __name__ == «__main__»:

Есть два способа вызвать файлы Python:

  1. Вы можете вызвать файл напрямую, имя файла python , что мы и сделали. делал.
  2. Вы можете вызвать файл как внешнюю библиотеку.

Мы не рассмотрели вызов файла как библиотеки пока нет. Если вы хотите использовать функцию count_words в другом файле, сделайте следующее:

1
2
from word_count import count_words

Это примет функцию count_words и сделает ее доступной в новом файле.
Вы также можете:

1
2
из импорта word_count *

Это импортирует все функции и переменные, bu Как правило, этот подход не рекомендуется. Вы должны импортировать только то, что вам нужно.

Теперь иногда у вас есть код, который вы хотите запустить, только если файл вызывается напрямую, то есть без импорта. Если это так, вы можете поместить его под этой строкой:

1
2
if __name__ == «__main __»:

Это означает (на простом английском): запускать этот код только в том случае, если я запускаю этот файл из командной строки (или что-то подобное). Если мы импортируем этот файл в другой, весь этот код будет проигнорирован.

Используя этот синтаксис, вы можете гарантировать, что ваша функция запускается только тогда, когда кто-то вызывает вашу программу напрямую, а не импорт, как модуль.

__ name__ — это внутренняя переменная, для которой интерпретатор Python устанавливает значение __ main__ , когда мы запускаем программу в автономном режиме.

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

1
2
3
если len (sys.argv)
print («Использование: python word_count.py «)
exit (1)

Помните, что мы импортировали библиотека sys? Он содержит несколько системных вызовов, одним из которых является команда sys.argv, которая возвращает аргументы командной строки. Вы уже знаете нашего старого друга len () . Мы проверяем, меньше ли количество аргументов командной строки двух (первым всегда является имя файла), и если да, то выводим сообщение и выходим. Вот что происходит:

1
2
python. Word_count.py
Использование: python word_count.py

Следующая строка:

1
2
filename = sys.argv [1]

Как я уже сказал, первым элементом sys.argv (или argv [0]) будет имя самого файла (word_count.py в нашем случае). Вторым будет файл, введенный пользователем. Мы читаем это.

1
2
3
4
f = open (filename, «r»)
data = f.read ()
f.close ()

Считываем данные из файла.

1
2
3
4
5
6
num_words = count_words (данные)
num_lines = count_lines (данные)
print («Количество слов:», num_words)
print («Количество строк:», num_lines)

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

1
2
3
4
5
python. word_count.py. birds.txt
Количество слов: 34
Количество строк: 8

Счетчик слов не идеален, и если вы попробуете его с другими файлами, вы обнаружите много ошибок. Но этого достаточно, чтобы перейти к следующей главе.

Оцените статью
clickpad.ru
Добавить комментарий