Sys python что это

Модуль sys в Python

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

Функции, предоставляемые модулем sys, позволяют нам работать с базовым интерпретатором, независимо от того, является ли он платформой Windows, Macintosh или Linux. В этом уроке мы рассмотрим эти функции и то, что с ними можно сделать.

import sys

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

sys.modules

Эта функция дает имена существующих модулей Python, импортированных текущей оболочкой. Выполним это в системе:

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

sys.argv

Эта функция собирает аргументы String, передаваемые скрипту python. Давайте выполним это в системе, написав скрипт:

Sys python что это. Смотреть фото Sys python что это. Смотреть картинку Sys python что это. Картинка про Sys python что это. Фото Sys python что это

sys.path

Эта функция просто отображает PYTHONPATH, установленный в текущей системе. Давайте выполним это в системе, написав скрипт:

Sys python что это. Смотреть фото Sys python что это. Смотреть картинку Sys python что это. Картинка про Sys python что это. Фото Sys python что это

sys.stdin

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

Sys python что это. Смотреть фото Sys python что это. Смотреть картинку Sys python что это. Картинка про Sys python что это. Фото Sys python что это

Вероятно, это наиболее часто используемая функция в модуле sys, так как это стандартный способ получения ввода от пользователя.

sys.copyright

Эта строка просто отображает информацию об авторских правах на текущую установленную версию Python. Давайте выполним это в системе, написав скрипт:

Sys python что это. Смотреть фото Sys python что это. Смотреть картинку Sys python что это. Картинка про Sys python что это. Фото Sys python что это

sys.exit

Этот метод заставляет интерпретатор внезапно завершать текущий поток выполнения. Давайте выполним это в системе, написав скрипт:

Sys python что это. Смотреть фото Sys python что это. Смотреть картинку Sys python что это. Картинка про Sys python что это. Фото Sys python что это

sys.getrefcount

Этот метод модуля sys возвращает количество ссылок на объект, в котором он используется. Python отслеживает это значение, поскольку, когда это значение достигает 0 в программе, память для этой переменной очищается. Давайте выполним это в системе, написав скрипт:

Источник

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

Sys python что это. Смотреть фото Sys python что это. Смотреть картинку Sys python что это. Картинка про Sys python что это. Фото Sys python что это

Sys python что это. Смотреть фото Sys python что это. Смотреть картинку Sys python что это. Картинка про Sys python что это. Фото Sys python что это

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

sys.argv

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

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

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

Sys python что это. Смотреть фото Sys python что это. Смотреть картинку Sys python что это. Картинка про Sys python что это. Фото Sys python что этоsys.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 python что это. Смотреть фото Sys python что это. Смотреть картинку Sys python что это. Картинка про Sys python что это. Фото Sys python что этоsys.exit

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

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

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

Telegram Чат & Канал

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

Паблик VK

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

sys.path

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

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

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

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 python что это. Смотреть фото Sys python что это. Смотреть картинку Sys python что это. Картинка про Sys python что это. Фото Sys python что это

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

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

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

Источник

Библиотека sys

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

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

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

Модуль sys даёт следующую информацию:

Модуль sys часто используют с модулем os. С помощью sys получают нужную информацию об операционной системе, чтобы избежать непредвиденных ошибок, а с помощью os взаимодействуют с ней (работа с файлами, запуск программ на выполнение, обработка путей и так далее).

Как подключить библиотеку

Все библиотеки (модули) в Python 3 подключаются с помощью команды «import имя библиотеки». Существуют разные варианты подключения, используемые при определённых обстоятельствах:

Функции и константы модуля sys

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

Информация о системных параметрах

sys.dllhandle

Целое число, которое определяет дескриптор динамически подключаемой библиотеки Python. Работает только в операционной системе Windows.

sys.exec_prefix

Строка, которая показывает, в какой каталог установлен Python. (обычно это «/usr/local»).

sys.executable

Строка, показывающая абсолютный путь к двоичному исполняемому файлу интерпретатора Python.

Если по какой-то причине определить путь к интерпретатору нельзя, sys.executable будет пустой строкой или None.

Вот пример её вывода:

sys.getfilesystemencoding()

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

Разные операционные системы используют различные кодировки:

Примечания:

sys.getwindowsversion()

Функция работает только с Windows. Она возвращает кортеж, описывающий, какая версия Windows сейчас запущена. Кортеж содержит до10 элементов, показывающих различную информацию об операционной системе (версия сборки, версия платформы и другая информация).

Чтобы получить доступ к определённому компоненту кортежа, достаточно обратиться к нему по индексу «sys.getwindowsversion()[1]» или имени «sys.getwindowsversion().platform». Для сохранения совместимости с предыдущими версиями, только первые пять элементов можно получить по индексу.

Перечислим все 10 вариантов ниаменований: major, minor, build, platform, service_pack, service_pack_minor, service_pack_major, suite_mask, product_type и platform_version.

Некоторые элементы могут выводить несколько значений, например, элемент «platform_version» возвращает основную версию, дополнительную версию и номер сборки ОС.

sys.platform

Строка, дающая информацию об используемой операционной системе (идентификатор платформы). Например, «win32».

sys.winver

Содержит номер версии Python, который используется в реестре Windows. Например, «3.8-32».

Используется только в информационных целях, то есть даже если изменить значения «sys.winver», значения в реестре Windows не изменятся.

Информация о параметрах интерпретатора

sys.argv

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

argv[0] — это имя скрипта. Если команда выполнена с опцией «-c», то в argv[0] помещает строка «-c». Если имя скрипта не было передано интерпретатору, то argv[0] будет пустой строкой.

sys.byteorder

Показывает порядок следования байтов. Различные платформы могут использовать как «big-endian» — прямая нумерация байтов, так и «little-endian» — обратная нумерация байтов. Например, при записи целого двухбайтового числа в памяти комрьютера, в случае прямой нумерации вначале идет старший байт, а затем младший. При обратной — наоборот, вначале записывается младший.

sys.builtin_module_names

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

sys.breakpointhook()

sys.copyright

Строка, дающая информацию об авторских правах на интерпретатор Python.

sys._current_frames()

Возвращает словарь, дающий информацию о активных потоках.

Функция используется только для внутренних или специализированных целей.

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

sys.flags

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

sys.float_info

Именованный кортеж, который содержит информацию о типе «float». Он содержит данные точности и внутреннем представлении чисел этого типа. Значения соответствуют константам с плавающей точкой, определенным в файле float.h для языка программирования C.

АтрибутМакрос float.hОбъяснение
epsilonDBL_EPSILONМинимально возможная разница между 1.0 и значением, больше чем 1.0, представленная как «float»
digDBL_DIGМаксимальное количество цифр, которые могут быть точно представлены в числе с плавающей точкой
mant_digDBL_MANT_DIGТочность чисел с плавающей точкой
maxDBL_MAXМаксимально возможное представление бесконечного числа с плавающей точкой
max_expDBL_MAX_EXPМаксимальное целое число e, такое что radix**(e-1) — представимое конечное число с плавающей точкой
max_10_expDBL_MAX_10_EXPМаксимальное целое число e, такое что 10**e входит в диапазон конечных чисел с плавающей точкой
minDBL_MINМинимальное положительное число «float»
min_expDBL_MIN_EXPМинимальное целое число e, такое что radix**(e-1) — приведённое к норме число с плавающей точкой
min_10_expDBL_MIN_10_EXPМинимальное целое число e, такое что 10**e — приведённое к норме число с плавающей точкой
radixFLT_RADIXОснование для экспоненциальной формы представления
roundsFLT_ROUNDSЦелочисленная константа, которая показывает, какой режим округления используется для арифметических операций

sys.float_repr_style

Строка, которая показывает поведение функции repr() для чисел типа «float». Если строка имеет значение «short», то для конечного числа x функция repr(x) пытается создать такую строку, что float(repr(x)) равен x с минимальным количеством десятичных цифр. Если float_repr_style имеет значение «legacy», а repr(x) ведёт себя так же, как до версии Python 3.1 — округлял до 17 десятичных цифр.

sys.getdefaultencoding()

Функция, которая возвращает имя кодировки, используемой по умолчанию, например, «utf-8».

sys.getallocatedblocks()

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

Если по какой-то причине интерпретатор не может вычислить информацию о количестве блоков памяти, функция вернёт ноль.

sys.getandroidapilevel()

Доступно только на платформе Android. Возвращает версию сборки API Android.

sys.getrecursionlimit()

Возвращает максимально возможное значение рекурсии и максимальную глубину стека интерпретатора. Этот предел предотвращает переполнение стека C, который в свою очередь приводит к сбою Python. Установить предел рекурсии можно с помощью функции setrecursionlimit().

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

sys.getswitchinterval()

Возвращает число, определяющее, частоту переключения потоков. Это вещественное число. Значение в секундах. Например: «0.005».

sys.hexversion

Номер версии интерпретатора Python, закодированный одним числом. Это число увеличивается с каждой версией, включая все виды релизов.

Это число называется «hexversion», потому что оно принимает понятный вид, только если его передать в функцию hex().

Пример версии: 50856176.

sys.hash_info

Кортеж, содержащий информацию о параметрах хеша.

АтрибутОбъяснение
widthСколько битов используется для значений хеша
modulusПростой модуль, используемое для числовой схемы хеша
infЗначение хеша, возвращаемое для +∞
nanЗначение хеша, возвращаемое для типа nan
imagМножитель, который используется для представления мнимой части комплексного числа
algorithmНаименование алгоритма, используемого для хеширования строк, байтов и представления памяти
hash_bitsВнутренний размер вывода алгоритма хеширования
seed_bitsРазмер начального ключа алгоритма хеширования

sys.implementation

Объект, дающий информацию о запущенном в данный момент интерпретаторе Python.

Объект должен содержать атрибуты: имя, версия, версия в шестнадцатеричном представлении, дескриптор кэша.

sys.int_info

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

sys.maxsize

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

sys.maxunicode

Число, показывающее, какое максимальное количество битов может выделяться на представление символа Unicode. Например: 1114111.

sys.modules

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

sys.path

Список строк, который показывает, в каких директориях ищутся модули. Инициализируется из переменной среды PYTHONPATH и установок по умолчанию.

Первый элемент списка (path[0]) — это директория, в которой находится скрипт, запускающий интерпретатор Python.

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

sys.dont_write_bytecode

sys.setrecursionlimit(предел)

Функция, позволяющая установить предел глубины рекурсии для интерпретатора Python. Предел предотвращает возможные ошибки, возникающие при переполнении стека в C.

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

sys.setswitchinterval(интервал)

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

sys.version

Строка, состоящая из номера версии Python, а также дополнительной информации о номере сборки и используемом компиляторе.

sys.api_version

Информацию об используемой интерпретатором версии C API. Применяется при отладке конфликтов, возникающих при взаимодействии Python и дополнительных модулей.

Пример значения: 1013.

Функции для работы с объектами

sys.getrefcount(object)

sys.getsizeof(object[, default])

Показывает, сколько байтов выделяется для хранения объекта любого типа.

Функция вызывает метод __sizeof__() у объекта. К этому значению добавляется размер данных выделенных для сборщика мусора, если объект им управляется.

sys._getframe([depth])

Возвращает объект кадра из стека вызова. Если передан необязательный аргумент «depth», то функция возвращает объект кадра, который ниже на заданное количество вершины стека.

Если значение «depth» больше, чем стек вызовов, вызывается исключение ValueError.

Значение по умолчанию для «depth» равно нулю, это значит, что функция вернёт самый верхний кадр стека.

Для того, чтобы было проще разобраться приведём пример. Мы вызовим функцию example(), которая в свою очередь вызовит функцию test(). Все эти вызовы будут записаны поочерёдно в стек. С помощью _getframe() получим объекты кадров из стека:

Вот что будет возаращено в результате выполнения:

Sys python что это. Смотреть фото Sys python что это. Смотреть картинку Sys python что это. Картинка про Sys python что это. Фото Sys python что это

Функции, выполняющие действия и преобразования

sys.call_tracing(функция, аргументы)

Вызывает функцию, с включённой трассировкой, состояние трассировки сохраняется и восстанавливается после выполнения функции. Это используют, когда надо отладить какой-то код с какой-то контрольной точки.

sys._clear_type_cache()

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

sys.exit([arg])

Если передан ноль, завершение работы происходит в обычном режиме, любое другое значение приводит к «неуспешному завершению». Если аргумент не входит в нужный числовой диапазон, функция может вернуть неопределённые результаты. Некоторые программисты придерживают определённых правил при указании значения аргумента, например, «2» может обозначать выход из-за синтаксической ошибки, а «3» — выход из-за переполнения стека.

sys.exit — это быстрый способ выйти из программы при возникновении ошибки.

sys.stdin

sys.stdout

sys._enablelegacywindowsfsencoding()

Изменяет кодировку файловой системы на «mbsc» и режим ошибок на «replace».

Действует также, как и определение переменной среды PYTHONLEGACYWINDOWSFSENCODING перед запуском Python.

Функции для работы с ошибками и исключениями

sys.exc_info()

Функция, возвращающая кортеж, состоящий из трёх элементов, которые показывают информацию об обрабатываемом в настоящее время исключении.

Если исключения не обрабатываются, кортеж состоит из трёх элементов со значением None. В противном случае он имеет значения: тип, значения, трассировка.

sys.last_type, sys.last_value, sys.last_traceback

sys.getfilesystemencodeerrors()

Показывает, какой режим обработки неподдерживаемых кодировкой символов при преобразовании имён файлов из Unicode в байтовое представление. В Windows по умолчанию значение «surrogatepass» или «replace». На других операционных системах «surrogateescape».

sys.stderr

Стандартный поток вывода ошибок, в который отправляются все ошибки интерпретатора. Файло-подобный объект, считывать данные можно с помощью его метода read.

sys.settrace(функция трассировки)

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

Функции трассировки должны иметь три аргумента: frame, event и arg. Frame — это текущий кадр стека, event — это событие: «call», «line», «return», «exception» или «opcode», а arg — это зависимый от типа события аргумент.

Если работа функции привела к ошибке, она сбрасывается, как при вызове settrace(None).

События имеют следующие значения:

Вот пример: создадим функцию для тарссировки. Она будет просто выводить в консоль аргументы, которые получает. Установим её для трассировки. После этого напишем немного кода: вызовим функцию, которая расчитываем сумму двух чисел. Результат сложения выведем в консоль.

Результат выполнения программы будет следующий:

Sys python что это. Смотреть фото Sys python что это. Смотреть картинку Sys python что это. Картинка про Sys python что это. Фото Sys python что это

Здесь мы видим, что как только вызвалась функция sum, сразуже сработала наша функция трассировки с событием «call».

Источник

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

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