Python实战之子进程

来源:互联网 发布:app软件大全 编辑:程序博客网 时间:2024/04/28 20:05

Python实战之子进程

最近做一个小工具需要用到Python的字进程,看了一下Python的API,subprocess模块可以就可以实现,并且还挺简单

要实现一个简单的自进程,只需要

[python] view plaincopyprint?
  1. import sys, os, subprocess  
  2. p = subprocess.Popen(["ls""-l"], shell=False, stdin=None, stdout=None, stderr=None)  
  3. print p.pid  
  4. print p.returncode  
 

此时,pid将是子进程的ID号,如果子进程正常推出,returncode将会是None。

 

也可以使用以下代码创建子进程

[python] view plaincopyprint?
  1. import sys, os, subprocess  
  2. retcode=subprocess.call(["ls""-l"], shell=False, stdin=None, stdout=None, stderr=None)  
  3. print retcode  
 

 

此时,如果子进程正常推出,retcode将会是0。

 

另外,如果期望不要输出创建出来的子进程的打印信息,可以将方法参数中的stdout和stderr设置为subprocess.PIPE。

 

以下是一个小例子,创建一个子进程p1,然后再创建一个子进程p2用来结束p1的执行。

[python] view plaincopyprint?
  1. import sys, os, subprocess  
  2. p1 = subprocess.Popen(["sleep""60"], shell=False, stdin=None, stdout=None, stderr=None)  
  3. print p1.pid  
  4. print p1.returncode  
  5. p2 = subprocess.Popen(["kill", str(p1.pid)], shell=False, stdin=None, stdout=None, stderr=None)  
  6. print p2.pid  
  7. print p2.returncode  
 

0 0
原创粉丝点击