我想将我使用的命令的输出分配给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(通常)是一个非常糟糕的主意!您必须非常确定自己在执行什么:)