<s>[INST] Assign output of os.system to a variable and prevent it from being displayed on the screen I want to assign the output of a command I run using os.system to a variable and prevent it from being output to the screen. But, in the below code ,the output is sent to the screen and the value printed for var is 0, which I guess signifies whether the command ran successfully or not. Is there any way to assign the command output to the variable and also stop it from being displayed on the screen?
var = os.system("cat /etc/services")
print var #Prints 0

 [/INST] From "Equivalent of Bash Backticks in Python", which I asked a long time ago, what you may want to use is popen:
os.popen('cat /etc/services').read()


I'm told that subprocess is a much better way to solve this, so here's the corresponding code:
import subprocess

proc = subprocess.Popen(["cat", "/etc/services"], stdout=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
print "program output:", out

 </s>