python中进程的使用

进程相关模块

os/sys

  • os.popen
  • os.system (调用系统内置命令行)
  • sys.exit os.abort 终止,abort是强制终止
  • exec家族 (将会接管控制权利)

subprocess  更强大的功能,可替代os/sys

  • Popen  
  • call  对Popen的简化,参数列表相同,返回code。可以用来替代os.system有优势 1可用参数列表,不用字符串转义 2 更好的处理返回值
  • check_all   同call,当返回值不是0的时候报错 CallProcessError
Popen例子1,这里可以设置stdout stdin stderr 其值可以设置为None  PIPE 和文件描述符

pingP = subprocess.Popen(args="ping www.baidu.com",shell=True,stdout=subprocess.PIPE)
pingP.wait()
pingP.pid
pingP.returncode
print pingP.stdout.read()

使用communicate,communicate会占用缓存,当数据量大的时候尽量不要用

p = subprocess.Popen(args="cat",shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE)
pout,perr=p.communicate(input="hello world!")
print pout


你可能感兴趣的:(线程,python)