16 Punkte von xguru 2023-06-30 | 3 Kommentare | Auf WhatsApp teilen
  • Die Python-Standardbibliothek enthält versteckte CLI-Tools, die sich im Terminal ausführen lassen
    • So lässt sich zum Beispiel gzip mit python -m gzip --decompress pypi.db.gz nutzen
  • Der Grund: Wenn ein Python-Modul einen if __name__ == "__main__"-Block hat, kann es mit python -m Modulname ausgeführt werden
  • Einige der Module, die sich so nutzen lassen
    • python -m http.server 8001
    • python -m asyncio ermöglicht Top-Level-await in der Python-Konsole
    • python -m tokenize cgi.py | head -n 10 Debug-Modus für den Python-Tokenizer
    • python -m ast cgi.py | head -n 10 AST-Debug-Modus
    • python -m json.tool kann JSON formatiert ausgeben
    • python -m nntplib zeigt standardmäßig die neuesten Beiträge der Newsgroup gmane.comp.python.general an (leider sind andere Gruppen nicht möglich)
    • python -m calendar gibt den Kalender des aktuellen Jahres aus, mit -t html ist auch HTML-Ausgabe möglich
  • Darüber hinaus sind in der Python-Standardbibliothek noch viele weitere großartige kleine Tools versteckt

3 Kommentare

 
botplaysdice 2023-06-30

Den Webserver nutze ich sehr praktisch. Wenn man bei uns in der Firma Dateien per scp verschiebt, wird stark gedrosselt (wohl aus Sicherheitsgründen;;;), und auch der Samba-Zugriff ist extrem langsam ... Wenn ich große Dateien herunterladen muss, nehme ich den Python-Webserver ...

 
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

Manchmal ist man irgendwann doch froh darüber.

 
GN⁺ 2023-06-30
Hacker-News-Kommentar
  • Das re.Scanner-Tool der Python-Standardbibliothek ist ein auf regulären Ausdrücken basierender Tokenizer, der in der offiziellen Dokumentation fehlt.
  • Dieses Tool verarbeitet eine Liste von Tokens auf einmal und stellt zusammenhängende Übereinstimmungen sicher.
  • Mit dem Block if __name__ == "__main__": kann ein Modul als einzelne *.py-Datei ausgeführt werden.
  • Python 3.12 soll eine SQLite-CLI/REPL in der Standardbibliothek enthalten.
  • Das Modul zipfile kann auf der Kommandozeile zum Entpacken und Komprimieren von ZIP-Dateien verwendet werden.
  • Das Modul json.tool kann auf der Kommandozeile zum formatierten Ausgeben von JSON verwendet werden.
  • Das Modul http.server ist nützlich, um Dateien im lokalen Netzwerk zu teilen.
  • Die Nutzung von Modulen der Standardbibliothek auf der Kommandozeile kann Sicherheitsrisiken mit sich bringen.
  • In der Python-Standardbibliothek gibt es viele undokumentierte, versteckte Tools und Funktionen.