Python-将os.system的输出分配给变量,并防止其在屏幕上显示

发布于 2021-02-02 23:19:35

我想将我运行的命令的输出分配给os.system变量,并防止将其输出到屏幕。但是,在下面的代码中,输出将发送到屏幕,并且打印的值var0,我猜这表明该命令是否成功运行。有什么方法可以将命令输出分配给变量,也可以阻止它在屏幕上显示?

var = os.system("cat /etc/services")
print var #Prints 0
关注者
0
被浏览
71
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    400

    从我很久以前问过的“ Python中的Bash反引号等效 ”中,你可能想使用的是popen

    os.popen('cat /etc/services').read()
    

    从Python 3.6的文档中,

    这是使用subprocess.Popen实现的;有关更强大的方法来管理子流程和与子流程进行通信,请参见该类的文档。

    这是对应的代码subprocess

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看