Python标准模块——subprocess
来源:互联网 发布:f22到底有多先进知乎 编辑:程序博客网 时间:2024/06/09 13:03
6、 subprocess
python通过subprocess模块执行shell命令,替代了多个旧模块:os.system, os.spawn*, os.popen*, popen2.*, commands.* 。
import subprocess
class subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
创建新进程,在新进程中执行子程序。
参数:
- args:程序参数序列或者一个字符串。如果是序列的话,可以使用shlex.split()函数得到。
- stdin、stdout、stderr是可执行程序的标准输入、标准输出和标准错误文件句柄。可以是PIPE、已存在文件的描述符或者已存在文件对象。如果是PIPE,表明需要创建新的pipe。
- cwd不是None时,孩子的当前目录在执行之前会变成cwd。
属性
Popen.returncode
子进程返回值,通过poll()和wait()进行设置。None值表示进程没有终止;负值-N表示子进程是由信号量N终止的。
方法
Popen.wait()
等待子进程终止。设置并返回returncode的属性。wait是有可能发生死锁的,比如如果stdout或者stderr是PIPE,并且子进程输出到PIPE的数据非常大时会导致该进程阻塞,等待OS的pipe缓冲区可以接受更多的数据。
举例
# Form the MATLAB script command that processes images and write to # temporary results file. f, output_filename = tempfile.mkstemp(suffix='.mat') os.close(f) #output_filename = 'output.mat' fnames_cell = '{' + ','.join("'{}'".format(x) for x in image_fnames) + '}' command = "{}({}, '{}')".format(cmd, fnames_cell, output_filename) #print(command) # Execute command in MATLAB. mc = "sudo /usr/local/MATLAB/R2015b/bin/matlab -nojvm -r \"try; {}; catch; exit; end; exit\"".format(command) pid = subprocess.Popen(shlex.split(mc), stdout=open('/dev/null', 'w'), cwd=script_dirname) retcode = pid.wait() print 'returncode',retcode if retcode != 0: raise Exception("Matlab script did not exit successfully!")
0 0
- Python标准模块——subprocess
- Python模块subprocess小记
- Python模块subprocess小记
- python得subprocess模块
- Python模块subprocess小记
- python模块subprocess学习
- python模块subprocess学习
- python模块subprocess学习
- Python的subprocess模块
- Python模块subprocess小记
- python subprocess 模块使用方法
- python之subprocess模块
- python:subprocess模块
- Python subprocess模块
- python 的 subprocess模块
- Python模块subprocess小记
- python学习-subprocess模块
- Python subprocess模块使用
- express 表单提交
- Python标准模块——shlex
- OSThread
- 程序设计实训报告--电子词典
- webpack优化
- Python标准模块——subprocess
- Python标准模块——PIL
- 软件工程导复习分析(简化版,不够详细,有干货)
- 快速排序
- 哈夫曼树
- Python标准模块——xml
- 使用protobuf(c++)的构建通用的数据系统(转)
- Python标准模块——math
- 辗转相除法