16 pontos por xguru 2023-06-30 | 3 comentários | Compartilhar no WhatsApp
  • A biblioteca padrão do Python inclui ferramentas de CLI escondidas que podem ser executadas no terminal
    • É possível usar gzip, por exemplo com python -m gzip --decompress pypi.db.gz
  • Isso é possível porque, se um módulo Python tiver um bloco if __name__ == "__main__", ele pode ser executado com python -m nome_do_módulo
  • Alguns dos módulos que podem ser usados dessa forma
    • python -m http.server 8001
    • python -m asyncio permite await em nível superior no console do Python
    • python -m tokenize cgi.py | head -n 10 modo de depuração do tokenizador do Python
    • python -m ast cgi.py | head -n 10 modo de depuração de AST
    • python -m json.tool permite fazer pretty print de JSON
    • python -m nntplib mostra por padrão as postagens mais recentes do grupo de notícias gmane.comp.python.general (infelizmente, outros grupos não são suportados)
    • python -m calendar exibe o calendário deste ano; com -t html também é possível gerar saída em HTML
  • Além desses, há muitas outras pequenas ferramentas excelentes escondidas na biblioteca padrão do Python

3 comentários

 
botplaysdice 2023-06-30

Eu uso bastante o servidor web. Na empresa, quando transfiro com scp, eles aplicam um throttling pesado (acho que por segurança;;;), e o acesso via Samba também é superlento.... Quando preciso baixar arquivos grandes, uso o servidor web do Python....

 
mckabi 2023-06-30
  • python -m base64 : echo "test string" | python -m base64 -e | python -m base64 -d
  • python -m imghdr IMAGE_FILENAME
  • python -m sndhdr SOUND_FILENAME
  • tarfile, gzip, zip
  • locale, platform, sysconfig
  • python -m inspect PYTHON_PKG

Às vezes faz falta.

 
GN⁺ 2023-06-30
Comentários do Hacker News
  • A ferramenta re.Scanner da biblioteca padrão do Python é um tokenizador baseado em regex que ficou de fora da documentação oficial.
  • Essa ferramenta processa uma lista de tokens de uma vez e garante correspondências contínuas.
  • Usar o bloco if __name__ == "__main__": permite executar um módulo como um único arquivo *.py.
  • O Python 3.12 deverá incluir uma CLI/REPL do SQLite na biblioteca padrão.
  • O módulo zipfile pode ser usado na linha de comando para descompactar e compactar arquivos zip.
  • O módulo json.tool pode ser usado na linha de comando para formatar JSON de forma legível.
  • O módulo http.server é útil para compartilhar arquivos em uma rede local.
  • Usar módulos da biblioteca padrão pela linha de comando pode trazer riscos de segurança.
  • A biblioteca padrão do Python tem muitas ferramentas e funcionalidades ocultas que não são documentadas.