25 Punkte von xguru 2024-06-05 | 2 Kommentare | Auf WhatsApp teilen
  • Pythons Module können als Kommandozeilen-Tools verwendet werden
    • Wenn man zum Beispiel das Modul webbrowser auf der Kommandozeile ausführt, kann man eine angegebene URL im Standard-Webbrowser öffnen
    • Die Python-Standardbibliothek enthält viele dieser Modul-Skript-Hybride
  • Wenn Python mit der Option -m ausgeführt wird, wird das angegebene Python-Modul wie ein Skript ausgeführt
    • Manche Module führen bereits beim Import bestimmte Aktionen aus; das Modul antigravity öffnet zum Beispiel einen XKCD-Comic im Webbrowser. Führt man es auf der Kommandozeile aus, hat das denselben Effekt wie das Importieren des Moduls
    • Das nennt man einen "import side effect"; die meisten Module vermeiden so etwas. Easter-Egg-Module wie antigravity sind die Ausnahme
    • Module, die Import side effects vermeiden, verwenden die Variable __name__, um sich beim Import als Modul anders zu verhalten als beim Ausführen als Skript

Nützliche allgemeine Kommandozeilen-Tools

  • python -m http.server: Startet einen einfachen Webserver
  • python -m webbrowser: Startet einen Webbrowser
  • python -m json.tool: Formatiert JSON-Daten hübsch
  • python -m calendar: Zeigt einen Kalender auf der Kommandozeile an

Besonders nützliche Tools unter Windows

  • python3.12 -m uuid: Ähnlich zum CLI-Utility uuidgen
  • python3.12 -m sqlite3: Ähnlich zum CLI-Utility sqlite3
  • python -m zipfile: Ähnlich zu den CLI-Utilities zip und unzip
  • python -m gzip: Ähnlich zu den CLI-Utilities gzip und gunzip
  • python -m tarfile: Ähnlich zum CLI-Utility tar

Nützliche Tools für die Arbeit mit Python-Code

  • python -m pip: Installiert Python-Pakete von Drittanbietern
  • python -m venv: Erstellt eine virtuelle Umgebung
  • python -m pdb: Startet den Python-Debugger
  • python -m unittest: Führt unittest-Tests aus
  • python -m pydoc: Zeigt Dokumentation an
  • python -m doctest: Führt doctest für die angegebene Datei aus
  • python -m ensurepip: Installiert pip
  • python -m idlelib: Startet die grafische REPL IDLE
  • python -m zipapp: Wandelt ein Python-Modul in ein ausführbares ZIP um
  • python -m compileall: Präkompiliert Python-Dateien zu Bytecode

Tools zur Analyse von Python-Code

  • python -m tokenize: Zerlegt ein Python-Modul in Tokens
  • python -m ast: Zeigt den abstrakten Syntaxbaum von Code an
  • python -m dis: Disassembliert Python-Code in Bytecode
  • python -m inspect: Untersucht den Quellcode von Python-Objekten
  • python -m pyclbr: Zeigt eine Übersicht der Objekte in einem Modul

Unterhaltsame Skripte, die als Python-Easter-Eggs funktionieren

  • python -m __hello__: Gibt "Hello world!" aus
  • python -m this: Gibt The Zen of Python (PEP 20) aus
  • python -m antigravity: Öffnet den Python-bezogenen XKCD-Comic Nr. 353 im Webbrowser
  • python -m turtledemo: Zeigt eine Demo verschiedener Zeichnungen, die mit dem Modul turtle erstellt werden können

Weitere Python-bezogene Tools

  • python -m asyncio: Startet eine Python-REPL mit asyncio-Unterstützung
  • python -m cProfile: Profiliert ein Python-Programm
  • python -m pstats: Zeigt mit cProfile erzeugte Profilstatistiken an
  • python -m pickle: Zeigt den Inhalt von pickle-Dateien an (High-Level)
  • python -m pickletools: Zerlegt pickle-Dateien (Low-Level)

Weniger nützliche Tools

  • python -m timeit: Misst die Ausführungszeit von Python-Ausdrücken
  • python -m site: Zeigt Python-"site"-Informationen an
  • python -m sysconfig: Zeigt Details zur Python-Konfiguration an
  • python -m platform: Zeigt Informationen zur aktuellen Plattform an
  • python -m mimetypes: Zeigt Dateiinformationen zu MIME-Typen/Erweiterungen an
  • python -m quopri: Kodiert/dekodiert rohe E-Mail-Daten
  • python -m filecmp: Vergleicht den Inhalt von zwei Verzeichnissen
  • python -m tabnanny: Prüft Python-Dateien auf gemischte Verwendung von Tabs und Leerzeichen

2 Kommentare

 
han905 2024-06-11

Wow, es gibt wirklich mehr gute Funktionen, als ich gedacht hätte.

 
dhy0613 2024-06-05

Ich erinnere mich, dass ich einmal eine ZIP-Datei in einen Linux-Server in einer abgeschotteten Netzwerkumgebung eingeschleust habe, dort aber der unzip-Befehl fehlte, also habe ich sie mit dem Modul python -m zipfile entpackt und dann weitergemacht.