(mein erster Beitrag, bitte nicht zu sehr schimpfen wenn ich was falsch mach)
ich versuche von meiner langjährigen bash-Gewohnheit etwas loszukommen und meine Skripte in Python zu verfassen. Mich beschäftigt dabei vor allem folgendes.
Wenn ich einen Systembefehl absetze (LINUX) tu ich das aktuell folgendermaßen:
Code: Alles auswählen
# Beispiel eines Kommandos mit viel Ausgabe
cmd = "rsync -av src/ dst/"
# subprozess starten, stdout und stderr in eine pipe senden
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# stdout und stderr aus pipe holen
pout, perr = process.communicate()
Wenn ich das Kommando umschriebe nach, z.B.
Code: Alles auswählen
# Beispiel eines Kommandos mit viel Ausgabe
cmd = "rsync -av src/ dst/ 2>&1 >> beispiel.log"
# subprozess starten, stdout und stderr in eine pipe senden
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# stdout und stderr aus pipe holen
# wäre aber so immer leer, da die Ausgaben ja in die Datei geschickt wurden!
pout, perr = process.communicate()
Was mache ich da am besten?