python subprocess pipe 实时输出日志的操作
*test11.py
importtime print"1" time.sleep(2) print"1" time.sleep(2) print"1" time.sleep(2) print"1"
*test.py
importsubprocess
p=subprocess.Popen("pythontest11.py",shell=True,stdout=subprocess.PIPE)
#None表示正在执行中
whilep.poll()isNone:
out=p.stdout.readline()
ifout!="":
printout
补充知识:python通过subprocess.Popen执行命令,重定向实时输出
执行命令
importsubprocess importsys #常用编码 GBK='gbk' UTF8='utf-8' #解码方式,一般py文件执行为utf-8,cmd命令为gbk current_encoding=GBK popen=subprocess.Popen('pingwww.baidu.com',shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, bufsize=1) out,err=popen.communicate() print('std_out:'+out) print('std_err:'+err) print('returncode:'+str(popen.returncode))
执行.py文件
importsubprocess importsys #常用编码 GBK='gbk' UTF8='utf-8' current_encoding=UTF8 popen=subprocess.Popen('pythonD:\code\test.py', stdout=subprocess.PIPE, stderr=subprocess.PIPE, bufsize=1) out,err=popen.communicate() print('std_out:'+out) print('std_err:'+err) print('returncode:'+str(popen.returncode))
以上这篇pythonsubprocesspipe实时输出日志的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。