Python-Namensfehler: Name der ausführbaren Datei ist nicht definiert

Fariba Laiq 21 Juni 2023
  1. Alternative zu execfile() in Python 3
  2. Verwenden Sie exec(), um eine Python-Datei auszuführen
  3. Verwenden Sie den with-Block, um eine Python-Datei mit exec() auszuführen
Python-Namensfehler: Name der ausführbaren Datei ist nicht definiert

In Python 2 gibt es eine eingebaute Funktion execfile(), in der eine Datei als Python-Anweisungen geparst und ausgewertet wird. Diese Funktion gibt es in Python 3 nicht mehr.

Dieser Artikel zeigt die mögliche Alternative zum Ausführen einer Datei in Python 3.

Alternative zu execfile() in Python 3

In Python 2 verwenden wir die Funktion execfile(), um eine Datei auszuführen. In Python 3 haben wir eine ähnliche Funktion namens exec().

Zuerst öffnen und lesen wir die Datei und übergeben sie als Argument an die Funktion exec().

die exec()-Funktion in Python 3

Die Python-Funktion exec() führt einen dynamisch erstellten Codeblock aus, der als Zeichenfolge übergeben wird.

Allgemeine Syntax:

# Python 3.x
exec(object, global, local)

Für die Funktion exec() werden drei Parameter benötigt.

  1. Ein Objekt kann ein String oder ein mehrzeiliger Code sein.
  2. Ein globaler Parameter kann ein Wörterbuch sein.
  3. Ein local kann ein Zuordnungswörterbuch sein.

Sowohl die lokalen als auch die globalen Parameter sind optional. Auch die exec() ist eine void-Funktion und gibt keinen Wert zurück.

Der folgende Code demonstriert die grundlegende Funktionsweise dieser Funktion. Der String Programmieren macht Spass wird im folgenden Code ausgegeben.

Es werden drei mathematische Operationen durchgeführt und einzeln an die Funktion exec() übergeben.

Auf ähnliche Weise können wir einer Zeichenfolge mehrere Zeilen hinzufügen, und jede Zeile wird analysiert, als Python-Anweisung betrachtet und ausgeführt.

Beispielcode:

# Python 3.x
exec('print("programming is fun")')
exec('x=4; y=9; print("Multiplication:", x*y)')
w = 200
exec("print(w == 200)")
exec("print(w / 100)")

Ausgang:

programming is fun
Multiplication: 36
True
2.0

Verwenden Sie exec(), um eine Python-Datei auszuführen

Wenn wir nun eine externe Python-Datei in unserem Code ausführen wollen, müssen wir die Datei zuerst öffnen, lesen und als Argument an die Funktion exec() übergeben.

Hier haben wir in unserem relativen Verzeichnis eine Datei myfile.py erstellt, die den folgenden Code enthält.

# Python 3.x
print("Delftstack")

Um diese Datei in unserem Python-Code auszuführen, öffnen wir sie zuerst mit open(), lesen sie dann mit der Funktion read() und führen sie schließlich mit der Funktion exec() aus.

Beispielcode:

# Python 3.x
exec(open("myfile.py").read())

Ausgang:

Delftstack

Verwenden Sie den with-Block, um eine Python-Datei mit exec() auszuführen

Der with-Block schließt die Datei sicher (automatisch), wenn sie das Ende des Blocks erreicht, wodurch sichergestellt wird, dass keine der Dateien geöffnet bleibt.

Beispielcode:

# Python 3.x
with open("myfile.py", "r") as f:
    exec(f.read())

Ausgang:

Delftstack
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Verwandter Artikel - Python Error