200 Глава 10 • Файлы
и исключения
борка литературных произведений, не защищенных авторским правом; это превос-
ходный ресурс для разработчиков, которые собираются работать с литературными
текстами в своих программных проектах.
Прочитаем текст «Алисы в Стране чудес» и попробуем подсчитать количество слов
в тексте. Мы воспользуемся методом
split()
, предназначенным для построения
списка слов на основе строки. Вот как метод
split()
работает со строкой, содер-
жащей только название книги:
>>> title = "Alice in Wonderland"
>>> title.split()
['Alice', 'in', 'Wonderland']
Метод
split()
разделяет строку на части по всем позициям, в которых обнаружит
пробел, и сохраняет все части строки в элементах списка. В результате создается
список слов, входящих в строку (впрочем, вместе с некоторыми словами могут
храниться знаки препинания). Для подсчета слов в книге мы воспользуемся вызо-
вом
split()
для всего текста, а затем подсчитаем элементы списка, чтобы получить
примерное количество слов в тексте:
filename = 'alice.txt'
try:
with open(filename) as f_obj:
contents = f_obj.read()
except FileNotFoundError:
msg = "Sorry, the file " + filename + " does not exist."
print(msg)
else:
# Подсчет приблизительного количества строк в файле.
words = contents.split()
num_words = len(words)
print("The file " + filename + " has about " + str(num_words) +
" words.")
Затем я переместил файл
alice .txt
в правильный каталог, чтобы код в блоке
try
был выполнен без ошибок. В точке программа загружает текст в переменную
contents
, которая теперь содержит весь текст в виде одной длинной строки и ис-
пользует метод
split()
для получения списка всех слов в книге. Запрашивая
длину этого списка при помощи функции
len()
, мы получаем неплохое при-
ближенное значение количества слов в исходной строке . В точке выводится
сообщение с количеством слов, найденных в файле. Этот код помещен в блок
else
, потому что он должен выводиться только в случае успешного выполнения
блока
try
. Выходные данные программы сообщают, сколько слов содержит файл
alice .txt
:
The file alice.txt has about 29461 words.
Количество слов немного завышено, потому что в нем учитывается дополнительная
информация, включенная в текстовый файл издателем, но в целом оно довольно
точно оценивает длину «Алисы в Стране чудес».
Исключения
201
Работа с несколькими файлами
Добавим еще несколько файлов с книгами для анализа. Но для начала переместим
основной код программы в функцию с именем
count_words()
. Это упростит про-
ведение анализа для нескольких книг:
Достарыңызбен бөлісу: