Python модуль sys
sys— это модуль стандартной библиотеки Python, предоставляющий функции для взаимодействия с интерпретатором Python и его средой.
Черезsysс помощью библиотеки вы можете получить доступ к переменным и функциям, связанным с интерпретатором Python, таким как аргументы командной строки, стандартный ввод/вывод, завершение программы и т. д.
Импорт библиотеки sys
Чтобы использоватьsysбиблиотеку, нужно сначала импортировать её. Способ импорта следующий:
import sys
Пример
# Вывести все атрибуты и методы модуля os
print(dir(os))
Общие возможности библиотеки sys
1. Аргументы командной строки
sys.argvявляется списком, содержащим аргументы командной строки.sys.argv[0]является именем скрипта, а последующие элементы — аргументы, переданные скрипту.
Пример кода:
Пример
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указывает на успех, тогда как ненулевые значения указывают на ошибки.
Пример кода:
Пример
print("Начало программы")
sys.exit(0)
print("Эта строка кода не будет выполнена")
3. Стандартный ввод/вывод
sys.stdin、sys.stdoutиsys.stderrпредставляют соответственно стандартный ввод, стандартный вывод и стандартный поток ошибок. Вы можете перенаправлять эти потоки, чтобы настроить поведение ввода/вывода.
Пример кода:
Пример
# Перенаправить стандартный вывод в файл
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.
Пример кода:
Пример
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='final', serial=0) </code>
5. Путь поиска модулей
sys.pathпредставляет собой список, содержащий пути, которые интерпретатор Python просматривает при импорте модулей. Вы можете изменить этот список, чтобы добавить пользовательские пути поиска модулей.
Пример кода:
Пример
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) | установить функцию профилирования |