Ausgabe mit Unterprozess in Python umleiten
In Python ermöglicht das Unterprozessmodul den Aufruf externer Befehle. Beim Ausführen von Befehlen ist es oft wünschenswert, die Ausgabe in eine Datei umzuleiten.
Bedenken Sie den folgenden Befehlszeilenbefehl:
cat file1 file2 file3 > myfile
Dieser Befehl verkettet die Dateien Datei1, Datei2 und Datei3 und leitet die um Ausgabe in die myfile-Datei. Um eine ähnliche Funktionalität in Python zu erreichen, können Sie zunächst Folgendes versuchen:
import subprocess, shlex my_cmd = 'cat file1 file2 file3 > myfile' args = shlex.split(my_cmd) subprocess.call(args) # Spits output in the window from which Python was called
Dieser Ansatz leitet die Ausgabe jedoch nicht in eine Datei um. Stattdessen wird es in dem Fenster gedruckt, in dem das Python-Programm aufgerufen wurde.
Python 3.5-Lösung
Um die Ausgabe ordnungsgemäß umzuleiten, stellen Sie ein offenes Dateihandle für die Standardausgabe bereit Argument in subprocess.run:
input_files = ['file1', 'file2', 'file3'] my_cmd = ['cat'] + input_files with open('myfile', "w") as outfile: subprocess.run(my_cmd, stdout=outfile)
Diese Lösung leitet die Ausgabe effektiv in die myfile-Datei um, ohne dass ein externer Befehl erforderlich ist wie Katze.
Das obige ist der detaillierte Inhalt vonWie leite ich die Ausgabe eines externen Befehls mithilfe des Moduls „subprocess' in Python in eine Datei um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!