Python модуль sys

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

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

Импорт библиотеки sys

Чтобы использоватьsysбиблиотеку, нужно сначала импортировать её. Способ импорта следующий:

import sys

Пример

import sys

# Вывести все атрибуты и методы модуля os
print(dir(os))

Общие возможности библиотеки sys

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

sys.argvявляется списком, содержащим аргументы командной строки.sys.argv[0]является именем скрипта, а последующие элементы — аргументы, переданные скрипту.

Пример кода:

Пример

import sys

print("Script name:", sys.argv[0])
print("Argument list:", sys.argv[1:])

Как запустить:

python script.py arg1 arg2

Вывод:

脚本名称: script.py
参数列表: ['arg1', 'arg2']

2. Выход из программы

sys.exit()Используется для выхода из программы. Можно передать целое число в качестве кода состояния выхода; обычно0указывает на успех, тогда как ненулевые значения указывают на ошибки.

Пример кода:

Пример

import sys

print("Начало программы")
sys.exit(0)
print("Эта строка кода не будет выполнена")

3. Стандартный ввод/вывод

sys.stdin、sys.stdoutиsys.stderrпредставляют соответственно стандартный ввод, стандартный вывод и стандартный поток ошибок. Вы можете перенаправлять эти потоки, чтобы настроить поведение ввода/вывода.

Пример кода:

Пример

import sys

# Перенаправить стандартный вывод в файл
with open('output.txt', 'w') as f:
    sys.stdout = f
    print("Эта строка будет записана в output.txt")

# Восстановить стандартный вывод
sys.stdout = sys.__stdout__
print("Эта строка будет отображена в консоли")

4. Информация о версии Python

sys.versionиsys.version_infoпредоставляет информацию о версии текущего интерпретатора Python.

Пример кода:

Пример

import sys

print("Версия Python:", sys.version)
print("Информация о версии:", sys.version_info)

Вывод:

<code>Python 版本: 3.9.7 (default, Aug 31 2021, 13:28:12) 
[GCC 7.5.0]
版本信息: sys.version_info(major=3, minor=9, micro=7, releaselevel=&#39;final&#39;, serial=0)
</code>

5. Путь поиска модулей

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

Пример кода:

Пример

import sys

print("Путь поиска модулей:", sys.path)
sys.path.append('/custom/path')
print("Обновлённый путь поиска модулей:", sys.path)

Общие атрибуты модуля sys

AttributeОписание
sys.argvСписок аргументов командной строки,sys.argv[0]является именем скрипта
sys.pathПуть поиска модулей Python (PYTHONPATH)
sys.modulesсловарь загруженных модулей
sys.platformидентификатор платформы операционной системы (например,'win32', 'linux', 'darwin')
sys.versionинформация о версии интерпретатора Python
sys.executableабсолютный путь к интерпретатору Python
sys.stdinстандартный поток ввода (файловый объект)
sys.stdoutстандартный поток вывода (файловый объект)
sys.stderrстандартный поток ошибок (файловый объект)
sys.byteorderпорядок байтов ('little'или'big')
sys.maxsizeмаксимальное значение целого числа (2**31-1или2**63-1)

Общие методы модуля sys

МетодОписание
sys.exit([status])выйти из программы,status=0указывает на нормальное завершение
sys.getsizeof(obj)возвращает размер памяти в байтах, занимаемый объектом
sys.getdefaultencoding()получить кодировку строк по умолчанию (обычно'utf-8')
sys.setrecursionlimit(limit)установить лимит глубины рекурсии (по умолчанию1000)
sys.getrecursionlimit()получить текущий лимит глубины рекурсии
sys.getrefcount(obj)возвращает количество ссылок на объект
sys.exc_info()получить информацию о текущем исключении ((type, value, traceback))
sys.settrace(tracefunc)установить функцию отладочной трассировки
sys.setprofile(profilefunc)установить функцию профилирования
Другие расширения