使用subprocess.run调用外部程序
今天查找图纸的优化方法,在github上看到一个开源的代码,在python中使用subprocess.run调用外部程序
demo.py
import subprocess COMMAND = "echo" PARAMS = r"hello,world" # Command to run cmd = [COMMAND, PARAMS] # Run subprocess.run(cmd, shell=True)
执行demo.py,输出
hello,world
说明:
subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, shell=False, timeout=None, check=False, universal_newlines=False)
args:要执行的shell命令,默认应该是一个字符串序列
shell:如果shell为True,那么指定的命令将通过shell执行
check:如果check参数的值是True,且执行命令的进程以非0状态码退出,则会抛出一个CalledProcessError的异常,且该异常对象会包含 参数、退出状态码、以及stdout和stderr
stdout,stdin和stderr:可以和标准流交互
subprocess模块可以生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码