python的subprocess模块

可以执行shell命令的相关模块和函数有:os.system  os.spawn  os.popen等

call方法:执行命令,返回状态码。shell = True意思是允许shell命令是字符串形式。

check_call方法:执行命令,如果执行状态是0,则返回0,否则抛出异常。

check_output方法:执行命令,如果状态码是0, 则返回执行结果,否则抛出异常

Popen方法:用于执行负责的系统命令

参数:

  args:shell命令,可以是字符串或序列类型

  bufsize:指定缓冲。0无缓冲,1行缓冲,其他缓冲区大小,负值 系统缓冲。

  stdin  stdout  stderr:分别表示程序的标准输入、标准输出、错误句柄

  preexec_fn: 只在Unix平台下有效,用于指定一个执行对象(callable object),它将在子进程运行之前被调用。

  close_sfs:在windows平台下,如果close_fds被设置为True,则新创建的子进程将不会继承父进程的输入、输出、错误管道。

  cwd:用于设置子进程的当前目录。

  env:用于指定子进程环境变量。如果env=None,子进程的环境变量将从父进程中继承。

  universal_newlines: 不同系统换行符不同, True表示同意使用

  startupinfo与createionflags只在windows下有效。将被传递给底层的CreateProcess()函数,用于设置子进程的一些属性,如:主窗口的外观,进程的优先级等

import subprocess

while True:
    cmd = input('>>:')
    p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    out, err = p.stdout.read(), p.stderr.read()
    res = out if out else err
    print(res.decode('gbk'))

等多:http://blog.csdn.net/g457499940/article/details/17068277

原文地址:https://www.cnblogs.com/caibao666/p/6694618.html