Модуль sys
предлагает методы, которые позволяют работать с разными элементами среды выполнения Python. С его помощью можно взаимодействовать с интерпретатором, используя разные функции. Но для начала его нужно импортировать.
import sys
В этом материале речь пойдет о следующих возможностях модуля sys
:
sys.argv
sys.maxsize
sys.path
sys.version
sys.exit
sys.argv
Метод argv
возвращает аргументы командной строки, переданные скрипту Python, в виде списка. Важно отметить, что первый аргумент (с индексом 0
) в списке — это название самого скрипта. Остальные представлены в виде последовательности.
В следующем примере файл с кодом называется test.py
.
Время для примера:
import sys
print("Привет {}. Добро пожаловать в руководство по {} на {}".format(sys.argv[1], sys.argv[2], sys.argv[3]))
Сохраните этот код в файле test.py
и запустите его в командной строке вместе со следующими аргументами:
python test.py Студенты sys PythonRu
Перед этим необходимо перейти в директорию с файлом или ввести полный абсолютный путь к нему.
В указанной выше команде первым аргументом функции argv
является элемент Студенты
. sys
и PythonRu
— второй и третий аргументы.
Нулевым параметром является название самого скрипта, которое командная строка определяет автоматически.
Вывод:
Привет Студенты. Добро пожаловать в руководство по sys на PythonRu
sys.maxsize
Эта функция возвращает целое число, которое обозначает, какое максимально значение может иметь переменная типа Py_ssize_t
в программе Python. Это значение зависит от платформы, где программа была запущена. Если это 32-битная платформа, значение обычно 2*33 — 1 (2147483647), а в 64-битной — 2**63 — 1 (9223372036854775807).
Пример (обновите код в test.py
):
import sys
print(sys.maxsize)
Вывод:
9223372036854775807
sys.path
Метод path
из модуля sys
возвращает все пути для поиска модулей Python. Формат вывода — список строк.
Ту же операцию можно выполнить обратившись к переменным среды в панели управления и найдя в ней PYTHONPATH
. Первый элемент вывода — расположение исполняемого скрипта. Если же эта директория недоступна, то первый элемент будет пустой.
Такое может произойти в том случае, если скрипт был вызван интерактивно (с помощью IDLE, интегрированной среды разработки и обучения на языке Python) или же из стандартного ввода (с помощью инструкции exec
). В дальнейшем список может быть изменен в соответствии с требованиями. В него можно добавлять только строки и байты (другие типы будут игнорироваться).
Пример:
import sys
print(sys.path)
Вывод:
['C:\\Users\\user_name, 'C:\\Users\\ user_name \\Anaconda3\\pkgs\\nb_anacondacloud-1.2.0-py35_0\\Lib\\site-packages\\nb_anacondacloud-1.2.0-py3.5.egg-info', 'C:\\Users\\ user_name \\AppData\\Local\\Programs\\Python\\Python36\\python.exe', 'C:\\ProgramData\\Anaconda3\\DLLs', 'C:\\ProgramData\\Anaconda3\\lib', 'C:\\ProgramData\\Anaconda3', '', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\ user_name \\.ipython']
sys.version
Этот метод показывает версию интерпретатора Python. Он также предоставляет информацию о номере сборки и компиляторе. Информация отображается в виде строки. Рекомендуется использовать метод version_info
для получения информации о версии, а не извлекать ее из вывода sys.version
.
Пример:
import sys
print(sys.version)
Вывод:
3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)]
sys.exit
Метод exit
выходит из программы Python или завершает конкретный процесс. Он используется для безопасного завершения программы в случае исключения. Под капотом sys.exit
вызывает исключение SystemExit
. Это то же самое, что exit
или quit
в Python.
При вызове SystemExit
также исполняются функции блока finally
из инструкции try
.
Этот метод может включать опциональный аргумент. Его значение по умолчанию равно 0
, что значит, что программа была завершена нормально. Если значение отличается, это говорит о не-нормальном завершении.
Пример:
import sys
sys.exit()
sys.exit(0)
Выводы:
В этом материале вы познакомились с базовыми методами из модуля sys
, которые помогают взаимодействовать со средой исполнения Python.