Heim > Backend-Entwicklung > Python-Tutorial > Wie leite ich die Ausgabe eines externen Befehls mithilfe des Moduls „subprocess' in Python in eine Datei um?

Wie leite ich die Ausgabe eines externen Befehls mithilfe des Moduls „subprocess' in Python in eine Datei um?

DDD
Freigeben: 2024-11-29 00:50:10
Original
766 Leute haben es durchsucht

How do I redirect the output of an external command to a file using the `subprocess` module in Python?

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

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

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

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage