Versteckte CLI-Tools in der Python-Standardbibliothek
(til.simonwillison.net)- Die Python-Standardbibliothek enthält versteckte CLI-Tools, die sich im Terminal ausführen lassen
- So lässt sich zum Beispiel
gzipmitpython -m gzip --decompress pypi.db.gznutzen
- So lässt sich zum Beispiel
- Der Grund: Wenn ein Python-Modul einen
if __name__ == "__main__"-Block hat, kann es mitpython -m Modulnameausgeführt werden - Einige der Module, die sich so nutzen lassen
python -m http.server 8001python -m asyncioermöglicht Top-Level-awaitin der Python-Konsolepython -m tokenize cgi.py | head -n 10Debug-Modus für den Python-Tokenizerpython -m ast cgi.py | head -n 10AST-Debug-Moduspython -m json.toolkann JSON formatiert ausgebenpython -m nntplibzeigt standardmäßig die neuesten Beiträge der Newsgroupgmane.comp.python.generalan (leider sind andere Gruppen nicht möglich)python -m calendargibt den Kalender des aktuellen Jahres aus, mit-t htmlist auch HTML-Ausgabe möglich
- Darüber hinaus sind in der Python-Standardbibliothek noch viele weitere großartige kleine Tools versteckt
3 Kommentare
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 ...
python -m base64:echo "test string" | python -m base64 -e | python -m base64 -dpython -m imghdr IMAGE_FILENAMEpython -m sndhdr SOUND_FILENAMEpython -m inspect PYTHON_PKGManchmal ist man irgendwann doch froh darüber.
Hacker-News-Kommentar
re.Scanner-Tool der Python-Standardbibliothek ist ein auf regulären Ausdrücken basierender Tokenizer, der in der offiziellen Dokumentation fehlt.if __name__ == "__main__":kann ein Modul als einzelne *.py-Datei ausgeführt werden.zipfilekann auf der Kommandozeile zum Entpacken und Komprimieren von ZIP-Dateien verwendet werden.json.toolkann auf der Kommandozeile zum formatierten Ausgeben von JSON verwendet werden.http.serverist nützlich, um Dateien im lokalen Netzwerk zu teilen.