系统相关
首页 > 系统相关> > Python小记 多进程 subprocess

Python小记 多进程 subprocess

作者:互联网

subprocess

文章目录


常用内置方法

1.subprocess.call()

subprocess.call(
	args,*,
	stdin=None,
	stdout=None,
	stderr=None,
	shell=False
	)

2.subprocess.check_call()

subprocess.check_call(
	args,*,
	stdin=None,
	stdout=None,
	stderr=None,
	shell=False)

3.subprocess.check_output()

subprocess.check_output(
	args,*,
	stdin=None,
	stderr=None,
	shell=False,
	univeral_newlines=False)

参数说明:

improt subprocess
subprocess.call(['python', 'test.py'])
  上面的几个函数都是基于Popen()的封装(wrapper)。这些封装的目的在于让我们容易使用子进程。
  当我们想要更个性化我们的需求的时候,就要转向Popen类,该类生成的对象用来代表子进程.

Popen 创建进程

Popen对象创建后,主程序不会自动等待子进程完成。
我们必须调用对象的wait()方法,父进程才会等待 (也就是阻塞block)
subprocess.Popen(args,
	bufsize=-1,
	excutable=None,
	stdin=None,stdou=None,stderr=None,
	preexec_fn=None,
	close_fds=True,
	shell=False,
	cwd=None,env=None,
	universal_newlines=False,
	startupinfo=None,
	creationflags=0
	)

Popen 常见内置对象


Popen 常见内置方法



import subprocess

prcs = subprocess.Popen(['Python', 'test.py'],
	stdout=subprocess.PIPE,
	stdin=subprocess.PIPE,
	stderr=subprocess.PIPE,
	universal_newlines=True,
	shell=True)
prcs.communicate("这些文字都来自: stdin.")	
print('subprocess pid: ', prcs.pid)
print('\nSTDOUT:')
print(str(prcs.communicate()[0]))
print('\nSTDERR:')
print(prcs.communicate()[1])

标签:None,Python,Popen,subprocess,PIPE,stderr,进程,小记
来源: https://blog.csdn.net/qq_45020818/article/details/121177138