что такое модуль sys

Разбираем модуль sys

что такое модуль sys. Смотреть фото что такое модуль sys. Смотреть картинку что такое модуль sys. Картинка про что такое модуль sys. Фото что такое модуль sys

Модуль sys предоставляет системе особые параметры и функции. В данном разделе мы рассмотрим следующее:

sys.argv

Значение sys.argv – это список аргументов командной строки, которые причастны к скрипту Python. Первый аргумент, argv[0], имеет аналогичное скрипту Python наименование. В зависимости от платформы, на которой вы работаете, первый аргумент может содержать полный путь к скрипту или к названию файла. Для дополнительных деталей обратитесь к документации. А тем временем, попробуем поработать с парочкой примеров, чтобы познакомиться с этим инструментом:

Если вы запустите это в интерпретаторе, вы получите список с пустой строкой. Давайте создадим файл под названием sysargv.py, со следующим содержимым:

Теперь запустите код в IDLE. Вы увидите список с одним элементом, который содержит путь к вашему скрипту. Попробуем передать скрипту несколько аргументов. Откройте окно терминала \ консоли и при помощи команды cd измените каталоги на тот, в котором находится скрипт. После этого, запустите что-то наподобие этого:

что такое модуль sys. Смотреть фото что такое модуль sys. Смотреть картинку что такое модуль sys. Картинка про что такое модуль sys. Фото что такое модуль syssys.argv

Обратите внимание на то, что будет выведено на экран:

Первый аргумент – это название файла нашего скрипта. Следующие два аргумента в списке – это те, что мы передали нашему скрипту в командной строке.

sys.executable

Значение sys.executable – это полный путь к интерпретатору Python. Это очень полезно, когда вы используете чей-то компьютер, и вам нужно узнать, где установлен Python. В некоторых системах, данная команда не сработает, и выдаст пустую строку с надписью None. Посмотрим, как пользоваться этой функцией:

sys.exit

Данная функция позволяет разработчику выйти из Python. Функция exit принимает необязательный аргумент, обычно целое число, которое дает статус выхода. Ноль считается как успешное завершение. Обязательно проверьте, имеет ли ваша операционная система какие-либо особые значения для своих статусов выхода, чтобы вы могли следить за ними в своем собственном приложении. Обратите внимание на то, что когда вы вызываете exit, это вызовет исключение SystemExit, которое позволяет функциям очистки работать в конечных пунктах блоков try / except. Давайте взглянем на то, как вызывается данная функция:

Запустив данный код в IDLE, вы увидите возникшую ошибку SystemExit. Давайте создадим несколько скриптов для теста. Для начала вам нужно создать основной скрипт, программу, которая будет вызывать другой скрипт Python. Давайте назовем его “call_exit.py”. Скрипт должен содержать следующее:

Теперь создайте скрипт Python под названием“exit.py” и сохраните его в той же папке. Вставьте в него следующий код:

Теперь давайте запустим его:

что такое модуль sys. Смотреть фото что такое модуль sys. Смотреть картинку что такое модуль sys. Картинка про что такое модуль sys. Фото что такое модуль syssys.exit

Как вы могли заметить, написанный нами скрипт exit вернул ноль, так что он успешно заработал. Получается, мы заодно научились вызывать разные скрипты Python изнутри самого Python!

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

sys.path

Значение функции path модуля sys – это список строк, которые указывают путь поиска для модулей. Как правило, данная функция указывает Python, в каких локациях смотреть, когда он пытается импортировать модуль. В соответствии с документацией Python, sys.path инициализируется из переменной окружения PYTHONPATH, плюс зависимое от установки значение, указанное по умолчанию. Давайте взглянем на пример:

Данная функция может быть весьма полезной во время отладки причины, по которой модуль не импортируется. Вы также можете изменить путь. Так как данная функция является путем, мы можем добавлять или удалять путь из неё. Давайте взглянем на то, как добавлять путь:

Удаление пути я оставлю как задание для читателя что такое модуль sys. Смотреть фото что такое модуль sys. Смотреть картинку что такое модуль sys. Картинка про что такое модуль sys. Фото что такое модуль sys

sys.platform

Значение sys.platform – идентификатор платформы. Вы можете использовать sys.platform чтобы добавлять модули к sys.path, импортировать разные модули, в зависимости от платформы, или запускать разные части кода. Давайте взглянем:

В данном примере мы видим, что Python работает в Windows. Вот пример того, как мы можем воспользоваться данной информацией:

Данный код показывает способы проверки того, используем ли мы определенную операционную систему. Если мы используем Windows, мы получим определенную информацию из реестра Windows, при помощи модуля Python под названием _winreg. Если мы используем Linux, мы можем выполнить команду ls, чтобы получить информацию о каталоге, в котором мы находимся.

sys.stdin / stdout / stderr

Stdin, stdout и stderr сопоставляются с файловыми объектами, которые соответствуют стандартным входам, выходам и потокам ошибок интерпретатора соответственно. Функция stdin используется для всех входов, используемых интерпретатором, за исключением скриптов, тогда как stdout используется для выходов операторов print и expression. Главная причина, по которой я акцентирую на этом внимание, заключается в том, что в какой-то момент вам нужно будет перенаправить stdout или stderr, или обе функции к файлу, такому как log, либо же какой-либо дисплей в пользовательском графическом интерфейсе, созданным вами. Вы также можете перенаправить stdin, но с такими случаями я практически не сталкивался.

Подведем итоги

Существует много других значений и методов в модуле sys. Обратитесь к документации Python, а именно к секции 27.1, если вам нужно углубиться в данный вопрос. Мы многому научились из данной статьи, поздравляю. Теперь вы знаете, как выйти из программы Python, как получить информацию о платформе, работать с аргументами, переданными командной строке, и многому другому.

что такое модуль sys. Смотреть фото что такое модуль sys. Смотреть картинку что такое модуль sys. Картинка про что такое модуль sys. Фото что такое модуль sys

Являюсь администратором нескольких порталов по обучению языков программирования Python, Golang и Kotlin. В составе небольшой команды единомышленников, мы занимаемся популяризацией языков программирования на русскоязычную аудиторию. Большая часть статей была адаптирована нами на русский язык и распространяется бесплатно.

E-mail: vasile.buldumac@ati.utm.md

Образование
Universitatea Tehnică a Moldovei (utm.md)

Источник

Что такое модуль sys

Данный модуль обеспечивает высокоуровневое взаимодействие с операционной системой. Но не для всех ОС пригодны некоторые функции. Если не оговорено особо – функция работает во всех ОС. Перечень наиболее употребительных функций и переменных модуля:

Содержит список аргументов, переданных скрипту. Первый аргумент – полный путь к фалу скрипта.

Содержит список модулей, компилированных с Питоном.

Содержит строку информации о copyright интерпретатора Питона

Содержит дескриптор DLL интерпретатора Питона

type – тип исключения(имя его класса);

value – собственно объект исключения;

traceback – информация о стеке, состоянии скрипта.

Путь к интерпретатору.

Выход с передачей системе кода выхода arg

Если этой переменной присвоена какая-либо функция пользователя, то она вызывается при завершении программы или при вызове exit()

Кодировка Юникода по умолчанию

Возвращает число переменных, ссылающихся на объект в памяти

Возвращает число раз, когда функция может вызывать саму себя(рекурсия) до переполнения стека.

Возвращает версию Питона в шестнадцатицентричном формате.

Максимальное целое число типа int. Обычно это число 2^31 – 1(для 32-х разрядных машин).

Максимальный символ Юникода, зависит от версии Юникода, установленного в системе

Список загруженных модулей

Содержит в себе список путей поиска операционной системы

Строка с именем платформы, где запускается интерпретатор Питона, например ‘sunos5’ или ‘linux1’

Содержит в себе путь, где находятся платформенно-независимые файлы, обычно ‘/usr/local’ модули хранятся в prefix + ‘/lib python_version / ‘ и так далее.

Все(но см. слэши / или \)

Две строки, содержащие в себе приглашения Питона, обычно ps1=’>>>’ ps2=’. ‘

Для мультипоточных приложений – сколько инструкций выполнится до того, как Питон проверит другие потоки(по умолчанию 9, если interval

Источник

Аргументы командной строки Python

Python поддерживает программы, которые можно запускать из командной строки, в комплекте с аргументами командной строки. Это входной параметр, который необходимо передать скрипту при их выполнении, означает взаимодействие с интерфейсом командной строки для сценариев.

Предоставляемый модуль getopt, может анализировать параметры и аргументы командной строки Python.

Как происходит передача аргументов командной строки Python?

Команда ls часто используется для получения сводной информации о файлах и папках, находящихся в определенном каталоге.

Зачем использовать argparse?

Для общения между автором программы и пользователем, которое не требует углубления в код и внесения изменений в сценарий. Модуль предоставляет пользователю возможность вводить аргументы командной строки.

Доступ к аргументам командной строки

Модуль Python sys предоставляет доступ к аргументам командной строки через sys.argv. Он решает две задачи:

Модуль Python sys

Это базовый модуль, который с самого начала поставлялся с дистрибутивом Python. Это тот же подход, что и библиотека C, использующая argc / argv для доступа к аргументам. Модуль sys реализует аргументы командной строки в простой структуре списка с именем sys.argv.

Каждый элемент списка представляет собой единственный аргумент. Первый – sys.argv [0] – это имя скрипта Python. Другие элементы списка от sys.argv [1] до sys.argv [n] – аргументы командной строки от 2 до n. В качестве разделителя между аргументами используется пробел. Соответственно, значения аргументов, содержащие пробелы, должны быть заключены в кавычки.

Он хранит аргументы командной строки в списке; мы можем получить к нему доступ, используя sys.argv. Это очень полезный и простой способ читать аргументы командной строки как String.

Модуль Python getopt

Модуль Python getopt расширяет разделение входной строки проверкой параметров. Основанный на функции getopt C, он позволяет использовать как короткие, так и длинные варианты, включая присвоение значений.

Очень похож на функцию C getopt() для анализа параметров командной строки. Полезен при анализе аргументов командной строки, когда мы хотим, чтобы пользователь ввел некоторые параметры.

Модуль Python argparse

Предлагает интерфейс командной строки со стандартизованным выводом, тогда как первые два решения оставляют большую часть работы в ваших руках. argparse позволяет проверять фиксированные и необязательные аргументы с проверкой имени в стиле UNIX или GNU.

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

Упрощает написание удобных интерфейсов командной строки. Он автоматически генерирует справочные сообщения и сообщения об использовании и выдает ошибки, когда пользователь передает программе неверные аргументы.

getopt.getopt метод

Этот метод используется для анализа параметров командной строки и списка параметров.

args – это список аргументов, который необходимо проанализировать.

options – строка букв опций, которую сценарий хочет распознать, с опциями, требующими аргумента, за которым следует двоеточие (:).

long_options (по желанию) – это должна быть строка с именами длинных параметров, которые должны поддерживаться.

Исключение getopt.GetoptError

Это исключение возникает, когда в списке аргументов обнаруживается нераспознанный параметр или когда какой-либо опции, требующей аргумента, не дается ничего.

Аргументом исключения является строка, указывающая причину ошибки. Атрибуты msg и opt дают сообщение об ошибке и соответствующий параметр.

Источник

Параметры и функции конфигурации Python.

Модуль sys обеспечивает доступ к некоторым переменным, используемым или поддерживаемым интерпретатором и к функциям, которые тесно связаны с интерпретатором. Эти переменные и функции всегда доступны и позволяют менять конфигурацию интерпретатора во время выполнения, а так же взаимодействовать с операционной системой за пределами выполняемой программы.

События аудита CPython.

Функция sys.audit() вызывает событие аудита с любыми активными хуками. Функция sys.addaudithook() добавляет вызываемый хук/перехват в список активных хуков аудита для текущего интерпретатора.

Функция argv модуля sys в Python.
Имя используемой OS в Python.

`sys.platform` возвращает строку, которая содержит идентификатор платформы. Функция `sys.getwindowsversion()` возвращает именованный кортеж, описывающий версию Windows.

Различные сведения о версии Python.

Авторские права, относящиеся к интерпретатору Python. Номер версии интерпретатора Python. Версия API языка `C` для интерпретатора Python. Информация о реализации текущего работающего интерпретатора Python

Каталоги и пути интерпретатора Python.
Кодировка, используемая Python.

Функция `sys.getdefaultencoding()` возвращает имя текущей кодировки по умолчанию. Функция `sys.getfilesystemencoding()` возвращает имя кодировки преобразования между именами файлов. Функция `sys.getfilesystemencodeerrors()` режим ошибки преобразования между именами файлов

Настройка рекурсии в Python.

Функция `sys.getrecursionlimit()` возвращает текущее значение предела рекурсии. Функция `sys.setrecursionlimit()` устанавливает максимальную глубину стека интерпретатора Python для ограничения.

Функции трассировки и профилирования кода модуля sys в Python.

Управление трассировкой из кода Python и извлечение отладочной информации, профилирование кода.

Функция breakpointhook() модуля sys в Python.

По умолчанию sys.breakpointhook() подключает отладчик pdb, но его можно настроить на любую другую функцию, чтобы можно было выбрать, какой отладчик использовать.

Объекты stdin, stdout, stderr модуля sys в Python.
Функции excepthook() и exc_info() модуля sys в Python.

Когда возникает исключение и не обрабатывается, интерпретатор вызывает sys.excepthook с тремя аргументами, классом исключения, экземпляром исключения и объектом трассировки. Возвращаемое значение sys.exc_info() представляет собой кортеж из трех членов, содержащий класс исключения, экземпляр иск

Функция getrefcount() модуля sys в Python.

Функция `getrefcount()` модуля `sys` возвращает счетчик ссылок объекта.

Атрибуты path и path_hooks модуля sys в Python.

Атрибут sys.path содержит список строк, который указывает путь поиска для модулей. Атрибут sys.path_hooks содержит список вызываемых объектов, которые принимают аргумент пути, чтобы попытаться создать искатель для пути.

Список загруженных и скомпилированных модулей в Python.

Атрибут sys.modules представляет собой словарь, который отображает имена модулей на модули, которые уже были загружены.

Атрибут float_info модуля sys в Python.

Атрибут `float_info` модуля `sys` представляет собой именованный кортеж, содержащий информацию о типе `float`.

Атрибут int_info модуля sys в Python.

Атрибут `int_info` модуля `sys` представляет собой именованный кортеж, который содержит информацию о внутреннем представлении Python целых чисел.

Атрибут maxsize модуля sys в Python.

Атрибут maxsize модуля sys представляет собой целое число, дающее максимальное значение, которое может принимать переменная типа `Py_ssize_t`. Обычно это `32 ** 31-1` на 32-битной платформе и `2 ** 63-1` на 64-битной платформе.

Атрибут byteorder модуля sys в Python.

Атрибут `byteorder` модуля `sys` представляет собой индикатор собственного порядка байтов.

Функция exit() модуля sys в Python.
Функция getsizeof() модуля sys в Python.

Функция `getsizeof()` модуля `sys` возвращает размер объекта `object` в байтах. Объект может быть любым типом объекта. Учитывается только потребление памяти, непосредственно приписываемое объекту, а не потребление памяти объектами, к которым он относится.

Атрибут dont_write_bytecode модуля sys в Python.

Если атрибут `dont_write_bytecode` модуля `sys` равен `True`, то Python не будет пытаться записывать файлы `.pyc` при импорте исходных модулей. Этот атрибут можно установить самостоятельно их кода Python для управления генерацией файла байт-кода.

Функция warnoptions() модуля sys в Python.

Функция `warnoptions()` модуля `sys` возвращает список аргументов параметра командной строки `-W`, полученного интерпретатором.

Источник

Аргументы командной строки в Python

В этом уроке мы погружаемся в аргументы командной строки в Python. Используя модуль sys, модуль getopt и модуль argparse, мы будем анализировать и читать аргументы.

Обзор

Поскольку Python является таким популярным языком программирования, а также имеет поддержку большинства операционных систем, он стал широко использоваться для создания инструментов командной строки для многих целей. Эти инструменты могут варьироваться от простых приложений CLI до более сложных, таких как AWS’ aws cli tool.

Как правило, аргументы передаются инструментам CLI по-разному, в зависимости от вашей операционной системы:

Эти различные подходы существуют в силу исторических причин. Многие программы в Unix-подобных системах поддерживают как одинарную, так и двойную тире-нотацию. Одинарная тире-нотация в основном используется с однобуквенными опциями, в то время как двойные тире представляют собой более читаемый список опций, что особенно полезно для сложных опций, которые должны быть более явными.

Обработка аргументов командной строки с помощью Python

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

Модуль sys

Печать первого аргумента CLI

В этом первом примере наш скрипт определит способ его вызова. Эта информация хранится в первом аргументе командной строки, индексируемом с 0. Приведенный ниже код показывает, как вы получаете имя вашего скрипта Python.

Сохраните этот код в файле с именем arguments-program-name.py, а затем назовите его, как показано ниже. Выходные данные выглядят следующим образом и содержат имя файла, включая его полный путь:

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

Подсчет количества аргументов

Сохраните и назовите этот файл arguments-count.py. Некоторые примеры вызова этого скрипта приведены ниже. Это включает в себя три различных сценария:

Перебор Аргументов

Наш третий пример выводит каждый аргумент, отправленный скрипту Python, за исключением самого имени программы. Поэтому мы перебираем аргументы командной строки, начиная с элемента second list. Напомним, что это индекс 1, так как списки в Python основаны на 0.

Ниже мы называем наш код, который был сохранен в файл arguments-output.py. Как и в нашем предыдущем примере, выходные данные иллюстрируют три различных вызова:

Помните, что смысл показа примера строки в кавычках заключается в том, что параметры обычно разделяются пробелом, если только они не окружены кавычками.

Модуль getopt

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

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

Сам вызов метода хранится в операторе try-catch для покрытия ошибок во время вычисления. Исключение возникает, если обнаружен аргумент, который не является частью списка, как было определено ранее. Скрипт Python выведет сообщение об ошибке на экран и завершит работу с кодом ошибки 2.

Ниже вы можете увидеть результаты выполнения этого кода. Мы покажем, как программа реагирует как с допустимыми, так и с недопустимыми аргументами программы:

Модуль argparse

В приведенном ниже коде показана инициализация парсера, а в приведенном ниже выводе-базовый вызов, за которым следует справочное сообщение. В отличие от вызовов Python, которые мы использовали в предыдущих примерах, имейте в виду использовать Python 3 с этими примерами.

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

Вывод

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *