Сегодня мы будем учиться открывать и читать содержимое файлов, используя Python 2.7. И начнем с самого простого примера – выведем на экран содержимое текстового файла. При этом будем использовать интерактивный сценарий с запросом у пользователя имени того или иного файла.
Если вы забыли о том, что такое интерактивный сценарий, как его написать, повторяем урок 16.
Практический пример
Создаем на рабочем столе текстовый файл test15_text.txt
и вписываем в него следующий текст:
Итоговая таблица КХЛ выглядит таким образом. На первом месте - Авангард. На втором месте - АкБарс. На третьем месте - СКА.
Сохраняем текстовый файл в кодировке OEM 866. Это нужно для того, чтобы на экране выводились кириллические буквы, а не кракозябры. Как сохранить: в программе Notepad++ нажимаем вверху на: Кодировки - Кодировки -Кириллица - OEM 866
.
Далее создаем на рабочем столе файл test15.py
Пишем в него руками следующий программный код:
# -*- coding: utf- 8 -*- from sys import argv script, file = argv text = open(file) print u"Отрываем содержимое файла %r:" % file print text.read() print u"И снова введите имя файла с текстом:" file_snova = raw_input("> ") text_snova = open(file_snova) print text_snova.read()
Итак, начало файла мы уже знаем – мы разбирали переменную argv
в предыдущих уроках – здесь и здесь.
Далее следует команда open ()
, с помощью которой мы и открываем наш файл file, и содержимое которого мы присваиваем переменной text.
Далее выводим просто текст на экран «Отрываем содержимое файла….» И с помощью команды read()
выводим переменную text, то есть читаем содержимое текстового файла test15_text.txt
Итак, две команды в этом уроке:
open ()
- открывает файл
read()
- читает содержимое файла
Напоминаю, что %r - это оператор форматирования, вспоминаем операторы форматирования в уроке 10.
После этого попробуем сделать то же самое, но уже с помощью команды raw_input("> ")
Напомню, что эта команда прописывается для создания интерактивного сценария (подробнее об этом в уроке 16). Смотрите, в этом случае мы не прописываем в сценарии название текстового файла, а предлагаем пользователю в интерактивном режиме ввести название этого файла. Это более гибкий вариант открытия файлов в Python, запомните эти два варианта, особенно второй – это пригодится вам в дальнейшей работе.
Теперь открываем программу PowerShell и прописываем команду: python desktop/test15.py desktop/test15_text.txt
Далее программа вас попросит снова ввести имя файла, вы вводите desktop/test15_text.txt
В итоге у вас должно получиться следующее:
Домашнее задание
Попробуйте выполнить сценарий написания программы, состоящий только из первой части (с использованием переменной argv
) или только из второй части – с использованием команды raw_input("> ")
В следующем уроке мы разберем еще несколько команд для работы с файлами - перейти в урок 20.