Beim Ausführen von Shell-Befehlen in Python mithilfe des Subprozessmoduls ist es wichtig zu wissen, wie die Ausgabe umgeleitet wird. Ein häufiges Szenario ist die Umleitung der Standardausgabe eines Befehls in eine Datei. Dieser Artikel geht auf diesen Bedarf ein, indem er den Ansatz von Python zur Ausgabeumleitung untersucht.
Im bereitgestellten Python-Codeausschnitt versucht der Benutzer, subprocess.call zu verwenden, um die Ausgabe des cat-Befehls in eine Datei umzuleiten, indem er den Befehl aufteilt in Argumente mit Shlex umwandeln. Die Ausgabe wird jedoch weiterhin in der Konsole angezeigt.
Um die Ausgabe in Python 3.5 und höher ordnungsgemäß umzuleiten, kann das stdout-Argument von subprocess.run verwendet werden. Dieses Argument akzeptiert ein offenes Dateihandle als Wert, an den die Ausgabe weitergeleitet wird. Hier ist ein Beispiel:
# Use a list of args instead of a string input_files = ['file1', 'file2', 'file3'] my_cmd = ['cat'] + input_files with open('myfile', "w") as outfile: subprocess.run(my_cmd, stdout=outfile)
In diesem Code wird der auszuführende Befehl in eine Liste von Argumenten aufgeteilt und die Ausgabe wird in eine Datei namens „myfile“ umgeleitet. Die with-Anweisung stellt sicher, dass die Datei ordnungsgemäß geöffnet, geschrieben und geschlossen wird.
Es ist erwähnenswert, dass die Verwendung eines externen Befehls wie cat für diesen Zweck unnötig ist. Python verfügt über integrierte Funktionen zum Lesen und Schreiben von Dateien, die direkt verwendet werden können:
with open('myfile', "w") as outfile: outfile.write(open('file1').read()) outfile.write(open('file2').read()) outfile.write(open('file3').read())
Wenn Sie verstehen, wie Sie die Ausgabe mit einem Unterprozess richtig umleiten oder die Dateiverarbeitungsfunktionen von Python nutzen, können Sie den Ablauf effektiv verwalten Informationen in Ihren Python-Skripten.
Das obige ist der detaillierte Inhalt vonWie leite ich die Ausgabe mit einem Unterprozess in Python um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!