Heim > Backend-Entwicklung > Python-Tutorial > Wie leite ich die Ausgabe mit einem Unterprozess in Python um?

Wie leite ich die Ausgabe mit einem Unterprozess in Python um?

Patricia Arquette
Freigeben: 2024-11-17 18:20:02
Original
251 Leute haben es durchsucht

How to Redirect Output with Subprocess in Python?

Ausgabe mit Subprozess in Python umleiten

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)
Nach dem Login kopieren

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())
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage