Sys и его методы
1. Что такое sys
syssys— встроенный модуль Python для взаимодействия с интерпретатором Python и системными ресурсами.Позволяет управлять путями поиска модулей, аргументами командной строки, завершением программы, потоками ввода/вывода и др.
import sys2. Основные возможности и методы
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?