Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

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

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

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

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

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

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

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


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Ошибки, сложный материал, вопросы >
Нашли опечатку или неточность?

Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

Что-то не получается или материал кажется сложным?

Загляните в раздел «Обсуждение»:

  • задайте вопрос. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
  • расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
  • изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.

Об обучении на Хекслете

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

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

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

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

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
18 мая 10 месяцев

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

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

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

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Изображение Тото

Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу