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

    从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system、os.spawn*、os.popen*、popen2.*、commands.*不但可以调用外部的命令作为子进程,而且可以连接到子进程的input/output/error管道,获取相关的返回信息。

    常用subprocess方法示例:

    #执行命令,返回执行状态,0或非0

    >>> res = subprocess.call(["df","-h"])
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda1        48G   30G   18G  64% /
    tmpfs           1.9G     0  1.9G   0% /dev/shm
    /dev/sda3        91G   29G   58G  33% /data
    /dev/sdb        1.8T  696G  1.1T  40% /wdc
    >>> res
    0
    #接收字符串命令,返回元组形式,第一个元素是执行状态,第二个是执行结果

    >>> subprocess.getstatusoutput('ls /home/zww/day5')
    (0, 'decorator2.py decorator3.py decorator4.py decorator.py flag get_log user_table')
    #接收字符串格式命令,并返回结果

    >>> subprocess.getoutput('ls /home/zww/day5')
    'decorator2.py decorator3.py decorator4.py decorator.py flag get_log user_table'

    #执行命令,并返回结果,注意是返回结果,不是打印,下例结果返回给res

    >>> res = subprocess.check_output(['df','-h'])
    >>> res
    b'Filesystem      Size  Used Avail Use% Mounted on /dev/sda1        48G   30G   18G  64% / tmpfs           1.9G     0  1.9G   0% /dev/shm /dev/sda3        91G   29G   58G  33% /data /dev/sdb        1.8T  696G  1.1T  40% /wdc '

    #上面那些方法,底层都是封装的subprocess.Popen
    poll()
    Check if child process has terminated. Returns returncode

    wait()
    Wait for child process to terminate. Returns returncode attribute.


    terminate() 杀掉所启动进程
    communicate() 等待任务结束

    stdin 标准输入

    stdout 标准输出

    stderr 标准错误

    pid
    The process ID of the child process.

    #例子
    >>> p = subprocess.Popen("df -h",stdin=subprocess.PIPE,stdout=subprocess.PIPE,shell=True)
    >>> p.stdout.read()
    b'Filesystem      Size  Used Avail Use% Mounted on /dev/sda1        48G   30G   18G  64% / tmpfs           1.9G     0  1.9G   0% /dev/shm /dev/sda3        91G   29G   58G  33% /data /dev/sdb        1.8T  696G  1.1T  40% /wdc '
    >>>


     

  • 相关阅读:
    谷歌浏览器插件开发Tutorial: Getting Started (Hello, World!) 教程:准备开始(你好,世界!)
    Android ViewPager多页面滑动切换以及动画效果
    4.4 我同意条款—CheckBox的isCheck属性
    4.2设计具有背景图的按钮—ImageButton的焦点及事件处理
    【文件打开】浏览打开窗口
    【原创】PE检测工具
    emu8086注册算法分析及KeyGen实现
    学破解 <一> PE格式之MSDOS MZ header
    学破解 <二> PE格式之IMAGE_NT_HEADERS
    反虚拟机程序测试
  • 原文地址:https://www.cnblogs.com/wenwei-blog/p/7606578.html
Copyright © 2011-2022 走看看