Python Ein weiteres Python-Skript ausführen

Vaibhhav Khetarpal 30 Januar 2023
  1. Verwenden Sie die Anweisung import, um ein Python-Skript in einem anderen Python-Skript auszuführen
  2. Verwenden Sie die Methode execfile(), um ein Python-Skript in einem anderen Python-Skript auszuführen
  3. Verwenden Sie das Modul subprocess, um ein Python-Skript in einem anderen Python-Skript auszuführen
Python Ein weiteres Python-Skript ausführen

Eine einfache Textdatei, die Python-Code enthält, der direkt vom Client ausgeführt werden soll, wird normalerweise als Skript bezeichnet, das offiziell als Programmdatei der obersten Ebene bekannt ist.

Skripte sollen direkt in Python ausgeführt werden. Das Erlernen der Ausführung von Skripten und Code ist eine grundlegende Fähigkeit, um in der Welt der Python-Programmierung zu lernen. Python-Skripte haben normalerweise die Erweiterung '.py'. Wenn das Skript auf einem Windows-Rechner ausgeführt wird, hat es möglicherweise die Erweiterung .pyw.

In diesem Tutorial werden verschiedene Methoden zum Ausführen eines Python-Skripts in einem anderen Python-Skript erläutert.

Verwenden Sie die Anweisung import, um ein Python-Skript in einem anderen Python-Skript auszuführen

Die Anweisung import wird verwendet, um mehrere Module in den Python-Code zu importieren. Es wird verwendet, um Zugriff auf einen bestimmten Code von einem Modul zu erhalten. Diese Methode verwendet die Anweisung import, um das Skript in den Python-Code zu importieren und als Modul zu verwenden. Module können als Datei definiert werden, die Python-Definitionen und -Anweisungen enthält.

Der folgende Code verwendet die Anweisung import, um ein Python-Skript in einem anderen Python-Skript auszuführen.

  • Script1.py:
def func1():
    print("Function 1 is active")


if __name__ == "__main__":
    # Script2.py executed as script
    # do something
    func1()

Ausgabe:

Function 1 is active
  • Script2.py:
import Script1.py


def func2():
    print("Function 2 is active")


if __name__ == "__main__":
    # Script2.py executed as script
    # do something
    func2()
    Script1.func1()

Ausgabe:

Function 2 is active
Function 1 is active

Verwenden Sie die Methode execfile(), um ein Python-Skript in einem anderen Python-Skript auszuführen

Die Funktion execfile() führt die gewünschte Datei im Interpreter aus. Diese Funktion funktioniert nur in Python 2. In Python 3 wurde die Funktion execfile() entfernt, aber dasselbe kann in Python 3 mit der Methode exec() erreicht werden.

Der folgende Code verwendet die Funktion execfile(), um ein Python-Skript in einem anderen Python-Skript auszuführen.

  • Script2.py:
# Python 2 code
execfile("Script1.py")

Ausgabe:

Function 1 is active

Das gleiche kann in Python 3 getan werden, indem man Folgendes verwendet:

  • Script2.py:
exec(open("Script1.py").read())

Ausgabe:

Function 1 is active

Verwenden Sie das Modul subprocess, um ein Python-Skript in einem anderen Python-Skript auszuführen

Das Modul subprocess ist in der Lage, neue Prozesse zu erzeugen und auch deren Ausgaben zurückzugeben. Dies ist ein neues Modul und soll mehrere ältere Module wie os.system ersetzen, mit denen früher ein Python-Skript in einem anderen Python-Skript ausgeführt wurde.

Der folgende Code verwendet das Modul subprocess, um ein Python-Skript in einem anderen Python-Skript auszuführen.

  • Script1.py:
def func1():
    print("Function 1 is active")


if __name__ == "__main__":
    # Script2.py executed as script
    # do something
    func1()
  • Script2.py:
import subprocess

subprocess.call("Script1.py", shell=True)

Ausgabe:

Function 1 is active

Obwohl alle drei Methoden gut funktionieren, hat diese Methode einen Vorteil gegenüber den anderen beiden Methoden. Das Bearbeiten eines vorhandenen Python-Skripts und das Einfügen des gesamten darin enthaltenen Codes in eine Unterroutine ist bei dieser Methode nicht erforderlich.

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn