Python-Befehlsausgabe

Mögliche Duplikat:
Running Shell-Befehl aus Python und Erfassung der Ausgabe

Ich möchte die Ausgabe eines Befehls in eine Variable erfassen, also kann diese Variable wieder verwendet werden. Ich muss dieses Skript so ändern, dass es das tut:

#!/usr/bin/python import os command = raw_input("Enter command: ") os.system(command) 

Wenn ich "ls" eingebe, wenn ich dieses Skript laufe, bekomme ich diese Ausgabe:

 Documents Downloads Music Pictures Public Templates Videos 

Ich möchte diese Zeichenfolge (die Ausgabe des Befehls ls) in eine Variable einfangen, damit ich sie später wieder verwenden kann. Wie mache ich das?

3 Solutions collect form web for “Python-Befehlsausgabe”

 import subprocess command = raw_input("Enter command: ") p = subprocess.Popen(command, stdout=subprocess.PIPE) output, error = p.communicate() 

Die Ausgabe des Befehls kann mit dem check_output erfasst werden, insbesondere die Funktion check_output .

 output = subprocess.check_output("ls") 

Siehe auch die Dokumentation für subprocess.Popen für die Argumentliste, die check_output nimmt.

So habe ich es in der Vergangenheit getan.

 >>> import popen2 __main__:1: DeprecationWarning: The popen2 module is deprecated. Use the subprocess module. >>> exec_cmd = popen2.popen4("echo shell test") >>> output = exec_cmd[0].read() >>> output 'shell test\n' 
Python ist die beste Programmiersprache der Welt.