Содержание
- Введение
- Шаги для подсчета количества слов в текстовом файле
- Пример 1: подсчет количества слов
- Пример 2: подсчет количества слов в текстовом файле с несколькими строками
- Резюме
- Python — подсчет количества слов
- Шаги по подсчету количества слов в текстовом файле
- Пример 1: Подсчет количества слов
- Пример 2: Подсчет количества слов в текстовом файле с несколькими строками
- Резюме
- Популярные учебники
- Создание счетчика слов в Python
- Детские шаги: прочтите и распечатайте файл
- Подсчет слов и строк
- Исправлено количество строк
- Собираем все вместе
Python — подсчет количества слов
Вы можете подсчитать количество слов в текстовом файле в Python выполнив последовательность шагов, которые мы обсудим в этом руководстве.
В этом руководстве мы научимся подсчитывать количество слов в текстовом файле, используя примеры программ Python.
Шаги по подсчету количества слов в текстовом файле
Чтобы подсчитать количество слов в текстовом файле, выполните следующие действия.
- Откройте файл в режиме чтения и обработайте его в текстовом режиме.
- Прочтите текст с помощью функции read ().
- Разделите текст, используя пробел. Мы предполагаем, что слова в предложении разделены пробелом.
- Длина разделенного списка должна равняться количеству слов в текстовом файле.
- Вы может уточнять счет, очищая строку перед разделением или проверяя слова после разделения.
Пример 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
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:
- Вы можете вызвать файл напрямую, имя файла python , что мы и сделали. делал.
-
Вы можете вызвать файл как внешнюю библиотеку.
Мы не рассмотрели вызов файла как библиотеки пока нет. Если вы хотите использовать функцию 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
|
Счетчик слов не идеален, и если вы попробуете его с другими файлами, вы обнаружите много ошибок. Но этого достаточно, чтобы перейти к следующей главе.