Sys и его методы

1. Что такое 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?