Sys и его методы
1. Что такое sys
sys
sys
— встроенный модуль Python для взаимодействия с интерпретатором Python и системными ресурсами.Позволяет управлять путями поиска модулей, аргументами командной строки, завершением программы, потоками ввода/вывода и др.
import sys
2. Основные возможности и методы
2.1 Аргументы командной строки
# python script.py arg1 arg2
print(sys.argv)
# ['script.py', 'arg1', 'arg2']
sys.argv[0]
— имя скриптаОстальные элементы — переданные аргументы
2.2 Информация о версии Python
print(sys.version) # Полная строка с версией Python
print(sys.version_info) # Кортеж (major, minor, micro, releaselevel, serial)
2.3 Завершение программы
sys.exit(0) # Завершить программу с кодом 0
sys.exit(1) # Завершить с ошибкой
2.4 Пути поиска модулей
print(sys.path) # Список директорий для поиска модулей
sys.path.append('/my/path') # Добавить путь к поиску модулей
2.5 Потоки ввода/вывода
sys.stdin # стандартный ввод
sys.stdout # стандартный вывод
sys.stderr # стандартный поток ошибок
sys.stdout.write("Hello\n") # вывод без \n автоматически
2.6 Ресурсы интерпретатора
print(sys.platform) # OS-платформа ('win32', 'linux', 'darwin')
print(sys.executable) # путь к интерпретатору Python
print(sys.getrecursionlimit()) # текущий лимит рекурсии
sys.setrecursionlimit(2000) # изменить лимит рекурсии
2.7 Проверка используемой памяти/объектов
import sys
x = [1,2,3]
print(sys.getsizeof(x)) # размер объекта в байтах
3. Применение в автоматизации тестирования
Получение аргументов тестов из командной строки (например, pytest).
Настройка путей для импорта тестовых модулей.
Логирование ошибок через
sys.stderr
.Завершение теста при критической ошибке через
sys.exit()
.Управление лимитом рекурсии для тестов с рекурсивными функциями.
import sys
if len(sys.argv) < 2:
sys.exit("Не указан путь к тестовым данным")
Last updated
Was this helpful?