Зарегистрируйтесь, чтобы продолжить обучение

Ввод/вывод Ключевые аспекты разработки на Python

io

Любая программа, которую мы пишем, так или иначе взаимодействует с внешним миром. Программа на Python может:

  • Общаться с операционной системой, чтобы узнать текущее время или свободное место на диске
  • Писать и читать файлы в различных форматах
  • Взаимодействовать с другими программами через различные средства межпроцессного взаимодействия (IPC или Inter-Process Communication)

Представим, что вы реализуете web-приложение, пользователь которого может загружать изображения и просматривать как в оригинальном размере, так и в виде галереи миниатюр (уменьшенных копий изображений). Не правда ли, задача вполне реалистична. Подумаем, какие виды взаимодействия будет использовать программа на Python, выступающая в роли сервера. Когда пользователь выберет файл в браузере и нажмет кнопку «отправить», программа:

  • Примет запрос (произойдет взаимодействие с сетью)
  • Проверит наличие доступного места на диске (спросит об этом у операционной системы)
  • Запишет файл изображения на диск
  • Вызовет программу, которая сформирует для загруженного изображения миниатюру (IPC с дочерним процессом через буферы стандартного ввода-вывода stdin/stdout)
  • Сохранит на диске миниатюру
  • Обратится к серверу базы данных и отправит ему запрос на добавление информации о загруженном изображении и его местоположении
  • Сформирует ответ для пользователя в виде web-страницы, шаблон для которой считает с диска
  • Отправит пользователю ответ (через сеть)

Это далеко не полный список операций ввода-вывода (Input-Output, IO), которые выполняет даже сравнительно простой сервер web-приложения. Но и программы, работающие с данными, используемые при администрировании систем, отображающие графический интерфейс пользователя (Graphic User Interface, GUI) — все так или иначе осуществляют ввод-вывод. И насколько много существует видов взаимодействия с миром у программ, настолько много средств для этого предоставляет любой серьезный язык программирования. Наиболее важные возможности для IO в Python мы изучим в последующих курсах.

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

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff