Módulo Sys do Python

O módulo sys dá acesso a detalhes de runtime do Python, como argumentos de linha de comando, caminho de importação e versão atual do interpretador.

import sys

Use sys quando o seu código precisar conversar com o próprio interpretador Python, e não apenas com objetos da sua aplicação.

Argumentos de linha de comando

sys.argv é uma lista de argumentos passados para o script atual.

import sys

sys.argv = ['main.py', '--debug', 'app']
print(sys.argv[0])
print(sys.argv[1:])
main.py
['--debug', 'app']

Para aplicações reais de linha de comando, prefira argparse. Ele parte da mesma ideia, mas oferece validação e mensagens de ajuda.

Versão do Python

import sys

print(sys.version_info.major)
print(sys.version_info.minor)
3
14

Caminho de busca de importação

sys.path controla onde o Python procura módulos.

import sys

print(type(sys.path).__name__)
print(len(sys.path) > 0)
list
True

As primeiras entradas de sys.path normalmente incluem o projeto atual, por isso módulos locais podem ser importados.

Entrada e saída padrão

sys.stdin, sys.stdout e sys.stderr são objetos semelhantes a arquivo usados pelo interpretador.

import sys

print(sys.stdout.writable())
print(sys.stderr.writable())
True
True

Saindo de um programa

import sys

try:
    sys.exit(0)
except SystemExit as exc:
    print(exc.code)
0