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

Ввод/вывод Ключевые аспекты разработки на 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

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»