我想将我使用的命令的输出分配给os.system
变量,并防止将其输出到屏幕。但是,在下面的代码中,输出将发送到屏幕,并且打印的var
值为0,我猜这表明命令是否成功运行。有什么方法可以将命令输出分配给变量,也可以阻止它在屏幕上显示?
var = os.system("cat /etc/services")
print var #Prints 0
2
Python中反引号等效的
—
msw 2010年
不要使用
—
亚历克斯·马丁里
os.system
(也不os.popen
,请按照您接受的答案):使用subprocess.Popen
,这样更好!
@AlexMartelli,一个人不能在subprocess.Popen()中使用复杂的命令(例如管道),但是有了os.system,一个人可以
—
vak 2015年
@vak,您当然可以使用带有&c的管道
—
亚历克斯·马蒂利
subprocess.Popen
-只需添加即可shell=True
!
@AlexMartelli
—
IgnacioFernández'16
shell=True
(通常)是一个非常糟糕的主意!您必须非常确定自己在执行什么:)