zoukankan      html  css  js  c++  java
  • 「Python」6种python中执行shell命令方法

    用Python调用Shell命令有如下几种方式:

    第一种:

    os.system("The command you want").

    这个调用相当直接,且是同步进行的,程序需要阻塞并等待返回。返回值是依赖于系统的,直接返回系统的调用返回值,所以windows和linux是不一样的。

    第二种:

    os.popen(command[,mode[,bufsize]])

    先给大家看个例子

    教程|6种Python中执行shell命令的方法,你喜欢那种?

     

    可以看出,popen方法通过p.read()获取终端输出,而且popen需要关闭close().当执行成功时,close()不返回任何值,失败时,close()返回系统返回值. 可见它获取返回值的方式和os.system不同。

    第三种,使用commands模块,同样看一组例子。

    教程|6种Python中执行shell命令的方法,你喜欢那种?

     

    根据你需要的不同,commands模块有三个方法可供选择。getstatusoutput, getoutput, getstatus。

    但是,如上三个方法都不是Python推荐的方法,而且在Python3中其中两个已经消失。Python文档中目前全力推荐第四个方法,subprocess!

    subprocess使用起来同样简单:

    教程|6种Python中执行shell命令的方法,你喜欢那种?

     

    直接调用命令,返回值即是系统返回。shell=True表示命令最终在shell中运行。Python文档中出于安全考虑,不建议使用shell=True。建议使用Python库来代替shell命令,或使用pipe的一些功能做一些转义。官方的出发点是好的,不过真心麻烦了很多, so....

    如果你更关注命令的终端输出,可以这样

    教程|6种Python中执行shell命令的方法,你喜欢那种?

     

    同样很简单。

    其实还有两种方法没有讲:os.spawn* 和 popen2.*。

  • 相关阅读:
    Mac + Python3 安装scrapy
    Pyqt4+Eric6+python2.7.13(windows)
    js基础⑥
    python模块之os,sys
    Python模块之random
    Python模块之PIL
    js基础⑤
    js基础④
    js基础③
    centOS目录结构详细版
  • 原文地址:https://www.cnblogs.com/wrxblog/p/9752412.html
Copyright © 2011-2022 走看看