25 pontos por xguru 2024-06-05 | 2 comentários | Compartilhar no WhatsApp
  • Os módulos do Python podem ser usados como ferramentas de linha de comando
    • Por exemplo, ao executar o módulo webbrowser na linha de comando, é possível abrir a URL fornecida no navegador padrão
    • A biblioteca padrão do Python inclui muitos desses híbridos de módulo-script
  • Ao executar o Python com a opção -m, o módulo Python fornecido é executado como se fosse um script
    • Alguns módulos fazem algo no momento do import; por exemplo, o módulo antigravity abre uma tirinha do XKCD no navegador. Executá-lo pela linha de comando tem o mesmo efeito que importar o módulo
    • Isso é chamado de "import side effect", e a maioria dos módulos evita esse comportamento. Módulos easter egg como antigravity são exceções
    • Os módulos que evitam import side effects usam a variável __name__ para ter comportamentos diferentes quando são importados como módulo e quando são executados como script

Ferramentas úteis de linha de comando de uso geral

  • python -m http.server: inicia um servidor web simples
  • python -m webbrowser: abre o navegador web
  • python -m json.tool: formata dados JSON de forma legível
  • python -m calendar: mostra um calendário na linha de comando

Ferramentas especialmente úteis no Windows

  • python3.12 -m uuid: semelhante ao utilitário CLI uuidgen
  • python3.12 -m sqlite3: semelhante ao utilitário CLI sqlite3
  • python -m zipfile: semelhante aos utilitários CLI zip e unzip
  • python -m gzip: semelhante aos utilitários CLI gzip e gunzip
  • python -m tarfile: semelhante ao utilitário CLI tar

Ferramentas úteis ao trabalhar com código Python

  • python -m pip: instala pacotes Python de terceiros
  • python -m venv: cria um ambiente virtual
  • python -m pdb: executa o depurador do Python
  • python -m unittest: executa testes unittest
  • python -m pydoc: visualiza documentação
  • python -m doctest: executa doctests do arquivo fornecido
  • python -m ensurepip: instala o pip
  • python -m idlelib: executa o REPL gráfico do IDLE
  • python -m zipapp: converte um módulo Python em um ZIP executável
  • python -m compileall: pré-compila arquivos Python em bytecode

Ferramentas de análise de código Python

  • python -m tokenize: divide um módulo Python em tokens
  • python -m ast: mostra a árvore sintática abstrata do código
  • python -m dis: desmonta código Python em bytecode
  • python -m inspect: inspeciona o código-fonte de objetos Python
  • python -m pyclbr: mostra uma visão geral dos objetos de um módulo

Scripts divertidos que funcionam como easter eggs do Python

  • python -m __hello__: imprime "Hello world!"
  • python -m this: imprime The Zen of Python (PEP 20)
  • python -m antigravity: abre no navegador a tirinha XKCD nº 353 relacionada a Python
  • python -m turtledemo: mostra demonstrações de vários desenhos que podem ser feitos com o módulo turtle

Outras ferramentas relacionadas ao Python

  • python -m asyncio: executa um REPL Python com suporte a asyncio
  • python -m cProfile: faz profiling de programas Python
  • python -m pstats: mostra estatísticas de perfis gerados pelo cProfile
  • python -m pickle: visualiza o conteúdo de arquivos pickle (high-level)
  • python -m pickletools: desmonta arquivos pickle (low-level)

Ferramentas menos úteis

  • python -m timeit: mede o tempo de execução de expressões Python
  • python -m site: mostra informações de "site" do Python
  • python -m sysconfig: mostra detalhes da configuração do Python
  • python -m platform: mostra informações da plataforma atual
  • python -m mimetypes: mostra informações de mimetype/extensão de arquivos
  • python -m quopri: codifica/decodifica dados brutos de email
  • python -m filecmp: compara o conteúdo de dois diretórios
  • python -m tabnanny: verifica mistura de tabs e espaços em arquivos Python

2 comentários

 
han905 2024-06-11

Nossa, tem bem mais recursos bons do que eu imaginava, muito bom.

 
dhy0613 2024-06-05

Lembro que, em um servidor Linux em ambiente isolado para o qual levei um arquivo zip, não havia o comando unzip, então descompactei usando o módulo python -m zipfile e segui em frente.