zoukankan      html  css  js  c++  java
  • 模块之 subprocess模块

    1.调用系统命令

    import os

      1.1打印所有文件状态信息和‘0’其中0表示执行成功非0表示执行失败

      

      1.2 把执行的命令赋值给a 此时a只储存执行状态

      

      1.3打印  'os.popen(''dir)'只会显示储存所有状态信息的地址,此时可以把它赋值给一个变量用‘read()’方法去读出来

    2.subprocess.run:

      2.1

        a = subprocess.run(['dir','-S'], stderr=subprocess.PIPE, stdout=subprocess.PIPE, shell=True, check= True, encoding='GBK')
        print(a.stdout,' ', a.stderr)    

        # stderr接受异常输出

        #stdout接受标准输出

        #check 如果有异常直接报错

         2.2

          a = subprocess.run('dir -S |dir 文件名字', stderr=subprocess.PIPE, stdout=subprocess.PIPE, shell=True, encoding='GBK')
          print(a.stdout,' ', a.stderr)

          #此操作不能以列表形式给‘subprocess.run'解析,而是把‘'dir -S |dir 文件名字’这个管道命令给shell直接处理帅选到指定的‘文件名字’ 此时 shelli= True必须存在

     3 subprocess.call:

          #只返回执行状态0或者非零
          a = subprocess.call(['dir', '-S '])
          '0'

          #执行命令,如果为0就正常返回,否则抛出异常
          a = subprocess.check_call(['dir', '-S '])
          '0'


          #接受str命令 返回元祖形式, 第一个是执行状态, 第二个执行结果
          a = subprocess.getstatusoutput('dir /luffy/dir')
          ('0', '/luffy/dir')


          #接受str命令只返回结果
          a = subprocess.getoutput('dir /luffy/dir')
          ('/luffy/dir')

          #执行命令并且返回结果 注意是返回结果,不是打印, 返回给a 打印a才会显示结果,且只返回正确的输出
          a.subprocess.check_output(['dir', '-S '])
          print(a)

    4,subprocess.Popen

    1.

    #run和 Pope的区别是run是只有先主程序执行完才执行后面的shell脚本,而Popen是shell脚本和主程序同时执行,相当于由开了一个新的进程
    a = subprocess.run('sleep 10', shell=True, stdout=subprocess.PIPE, encoding='utf-8')
    s = subprocess.Popen('sleep 10', shell=True, stdout=subprocess.PIPE, encoding='utf-8')
  • 相关阅读:
    MySQL中的用户与授权
    Vim安装使用和配置
    Mysql中的explain和desc
    array_map、array_walk、array_reduce
    PHP二维数组去重(指定键名)
    git配置ssh秘钥(公钥以及私钥)windows
    在nginx上用FastCGI解析PHP
    关于token登录逻辑分析
    公有云 私有云 混合云 的区别
    使用Docker在服务器上部署Ubuntu,本地传文件到docker
  • 原文地址:https://www.cnblogs.com/yuexijun/p/10091387.html
Copyright © 2011-2022 走看看