Python-Programm über die Kommandozeile ausführen

PythonBeginner
Jetzt üben

Einleitung

In diesem Lab lernen Sie die grundlegende Fähigkeit, Python-Programme über die Kommandozeile auszuführen. Diese Methode ist unerlässlich für Automatisierung, Skripterstellung und die Bereitstellung von Anwendungen. Wir führen Sie durch die Erstellung eines Python-Skripts, dessen Ausführung und die Übergabe von Argumenten daran, alles innerhalb der Kommandozeilenoberfläche.

Erstellen und Ausführen eines einfachen Python-Skripts

Der gebräuchlichste Weg, ein Python-Programm auszuführen, besteht darin, Ihren Code in einer Datei mit der Erweiterung .py zu schreiben und diese Datei dann mit dem Python-Interpreter über Ihr Terminal auszuführen. Beginnen wir mit der Erstellung eines klassischen "Hello, World!"-Programms.

Zuerst müssen Sie eine neue Datei erstellen. Klicken Sie im Dateiexplorer der WebIDE auf der linken Seite mit der rechten Maustaste auf den leeren Bereich im Verzeichnis project und wählen Sie "New File". Benennen Sie die Datei hello.py.

Öffnen Sie als Nächstes die Datei hello.py und fügen Sie den folgenden Python-Code hinzu. Dieser Code verwendet die eingebaute Funktion print(), um eine Nachricht auf der Konsole anzuzeigen.

print("Hello, LabEx!")

Nachdem Sie das Skript erstellt haben, können Sie es ausführen. Öffnen Sie das integrierte Terminal in Ihrer WebIDE (falls es noch nicht geöffnet ist, können Sie das Menü Terminal > New Terminal verwenden). Das Terminal sollte im Verzeichnis /home/labex/project geöffnet werden, wo Sie Ihre Datei gespeichert haben.

Um das Skript auszuführen, geben Sie den Befehl python gefolgt vom Namen Ihrer Datei ein:

python hello.py

Nachdem Sie Enter gedrückt haben, sehen Sie die Ausgabe Ihres Skripts direkt im Terminal.

Hello, LabEx!

Sie haben erfolgreich Ihr erstes Python-Skript über die Kommandozeile erstellt und ausgeführt.

Verwendung von Kommandozeilenargumenten

Das Ausführen von Skripten über die Kommandozeile wird noch leistungsfähiger, wenn Sie ihnen zur Laufzeit Informationen übergeben können. Diese Informationen werden als Kommandozeilenargumente bezeichnet. Das sys-Modul von Python bietet eine einfache Möglichkeit, darauf zuzugreifen.

Erstellen wir ein neues Skript, das einen Benutzer namentlich begrüßt, wobei der Name als Kommandozeilenargument übergeben wird.

Erstellen Sie eine neue Datei namens greet.py im Verzeichnis /home/labex/project.

Fügen Sie den folgenden Code zu greet.py hinzu. Dieses Skript importiert das sys-Modul. Die Kommandozeilenargumente werden in der Liste sys.argv gespeichert. sys.argv[0] ist immer der Name des Skripts selbst, und die nachfolgenden Argumente beginnen bei sys.argv[1].

import sys

## Holen Sie sich den Namen aus dem ersten Kommandozeilenargument
name = sys.argv[1]

print(f"Hello, {name}!")

Führen Sie dieses Skript nun vom Terminal aus, aber übergeben Sie dieses Mal einen Namen nach dem Dateinamen des Skripts. Verwenden wir zum Beispiel "World".

python greet.py World

Das Skript nimmt "World" als Argument und verwendet es in der Ausgabe.

Hello, World!

Sie können versuchen, es mit Ihrem eigenen Namen auszuführen, um zu sehen, wie sich die Ausgabe ändert.

python greet.py LabEx
Hello, LabEx!

Diese Technik macht Ihre Skripte flexibel und wiederverwendbar für verschiedene Eingaben.

Skripte robuster gestalten

Was passiert, wenn Sie das greet.py-Skript aus dem vorherigen Schritt ausführen, ohne einen Namen anzugeben? Versuchen wir es.

python greet.py

Sie werden auf einen Fehler stoßen.

Traceback (most recent call last):
  File "/home/labex/project/greet.py", line 4, in <module>
    name = sys.argv[1]
IndexError: list index out of range

Dieser IndexError tritt auf, weil das Skript versucht, auf sys.argv[1] zuzugreifen, aber da kein Argument übergeben wurde, existiert dieser Index nicht. Ein robustes Skript sollte solche Fälle ordnungsgemäß behandeln.

Lassen Sie uns greet.py ändern, um zu prüfen, ob ein Argument übergeben wurde. Wenn nicht, wird ein Standardname verwendet. Wir können die Anzahl der Elemente in der sys.argv-Liste mit der Funktion len() überprüfen. Wenn len(sys.argv) größer als 1 ist, bedeutet dies, dass mindestens ein Argument übergeben wurde.

Aktualisieren Sie Ihre greet.py-Datei mit dem folgenden Code:

import sys

if len(sys.argv) > 1:
    ## Verwenden Sie das übergebene Argument, falls es vorhanden ist
    name = sys.argv[1]
else:
    ## Verwenden Sie einen Standardnamen, wenn kein Argument übergeben wird
    name = "World"

print(f"Hello, {name}!")

Jetzt ist Ihr Skript robuster. Führen Sie es erneut ohne Argument aus:

python greet.py

Dieses Mal läuft es ohne Fehler und verwendet den Standardnamen.

Hello, World!

Und es funktioniert weiterhin korrekt, wenn Sie ein Argument übergeben:

python greet.py LabEx
Hello, LabEx!

Die Behandlung potenzieller Fehler und die Bereitstellung von Standardverhalten sind wichtige Praktiken für das Schreiben zuverlässiger Kommandozeilenanwendungen.

Zusammenfassung

In diesem Lab haben Sie die wesentlichen Fähigkeiten für die Ausführung von Python-Programmen über die Kommandozeile erlernt. Sie haben mit der Erstellung und Ausführung eines einfachen Skripts begonnen. Anschließend haben Sie Ihre Skripte dynamischer und interaktiver gestaltet, indem Sie Kommandozeilenargumente über das sys-Modul verwendet haben. Schließlich haben Sie gelernt, wie Sie Ihre Skripte robuster gestalten, indem Sie Fälle behandeln, in denen Argumente fehlen könnten. Dies sind grundlegende Fähigkeiten für jeden Python-Entwickler, der Kommandozeilenwerkzeuge erstellen oder Aufgaben automatisieren möchte.