Найти тему
programmer's notes (python and more)

Стандартные библиотеки в Python. Библиотека sys. Приложение 1 к видео 6

Доброго времени суток, читатели, зрители моего канала programmer's notes.

Приложение к видеоуроку

Основы библиотеки sys в Python

Библиотека sys является стандартной для Python и входит в состав дистрибутива. Основное предназначение библиотеки является всё, что относится к взаимодействию интерпретатора языка Python и операционной системы. Функции библиотеки позволяют менять свойства интерпретатора во время выполнения программы, например определит возможную глубину рекурсии. Большое количество функций библиотеки связаны с выполнением программы в режиме отладки.

В данной статье мы рассмотрим только два инструмента, которые чаще всего используются в прикладном программировании:

  1. Получение параметров командной строки;
  2. Выход из программы.

С командной строкой мы работаем (т.е. я в своих уроках использую) уже последние несколько занятий и я уже говорил о таком механизме как перенаправление, с помощью которого, в частности можно перенаправить содержимое текстового файла в программу. Есть еще один механизм — конвейеризация. Я, где-то вскользь об этом говорил (или писал) и к которому мы, конечно, ещё вернёмся. Но есть ещё третий механизм, позволяющий передавать данные в программу: с помощью параметров командной строки. Я уверен, что вы с ним уже встречались при использовании каких-то утилит или консольных команд.

Библиотека sys позволяет легко получить все параметры командной строки программы. Она предоставляет список argv, который как раз и содержит эти параметры. Нужно только запомнить, что самый первый параметр, с нулевым индексом, это строка запуска программы. Т.е. список argv всегда не пуст.

Ниже представлена программа, демонстрирующая возможности sys.argv. Не забываем, что для того, чтобы использовать библиотеку, необходимо её подключить с помощью команды import.

Текст программы см. ниже
Текст программы см. ниже
primer48.py

Запуск программы

./primer48.py 1 2 3 4 qwerty "a b c d"

Результат выполнения

Количество параметров: 7
./primer48.py
1
2
3
4
qwerty
a b c d

Кавычки при обозначении параметров командной строки используют, когда параметр состоит из частей, отделённых друг от друга пробелами.

Ещё одной возможность библиотеки sys является использование метода exit() для выхода из программы. Метод может содержать код ошибки выхода. Обычно 0 — ошибок не было, а 1 — 127 это коды возможных ошибок. Ошибку может уловить программа, которая запускала данную программу и соответствующим образом среагировать.

Ниже представлена программа, которая получает на входе два параметр — имена текстовых файлов. Программа копирует указанный файл в файл под именем, указанным вторым параметром. В видеоуроке я это демонстрировал. Метод sys.exit() используются для выхода из программы в случае возникновения ошибки.

Текст программы см. ниже
Текст программы см. ниже
primer49.py

При запуске программы имена файлов, естественно, можно указывать в полном варианте абсолютном или косвенном, например

/home/vladislav/pyth/prog.py

или

../../prog.py

Замечание
В последней программе я совершил непростительное. :) Дело в том, что в Unix-системах код ошибки командной строки как раз 2, а не 1, как у меня в коде. Код ошибки 1 используется во всех остальных случаях. Впрочем, если вы пишите и программу запускающую и программу запускаемую, то ваше право разработать свою систему кодов ошибок.

Что касается библиотеки sys, то будет ещё одно приложение. Кроме этого к библиотеке мы будем обращаться и далее.

Всего наилучшего. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Успевайте программировать, ИИ не перехватил у вас эту возможность
Успевайте программировать, ИИ не перехватил у вас эту возможность