如何在python中利用子流程管实现实时输出日志

  介绍

如何在python中利用子流程管实现实时输出日志?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强> * test11。py

进口时间
  打印“1”;
  time . sleep (2)
  打印“1”;
  time . sleep (2)
  打印“1”;
  time . sleep (2)
  打印“1“

<强> *测试。py

导入子流程

p=subprocess.Popen (“python test11.py", shell=True, stdout=subprocess.PIPE)

<强> #没有表示正在执行中

而p.poll()没有:& lt; br>=p.stdout.readline () & lt; br>如果出去!=啊?& lt; br>打印

<强> python通过子流程。Popen执行命令,重定向实时输出

执行命令

导入子流程
  导入系统
  
  #常用编码
  GBK=& # 39; GBK # 39;
  use UTF8=& # 39; utf - 8 # 39;
  
  #解码方式,一般py文件执行为utf - 8, cmd命令为gbk
  current_encoding=GBK
  popen=subprocess.Popen (& # 39; ping www.baidu.com& # 39; shell=True,
  stdout=subprocess.PIPE,
  stderr=subprocess.PIPE,
  bufsize=1)
  ,呃=popen.communicate ()
  打印(& # 39;std_out: & # 39;+)
  打印(& # 39;std_err: & # 39;+犯错)
  打印(& # 39;returncode: & # 39;+ str (popen.returncode) 

执行py文件

导入子流程
  导入系统
  
  #常用编码
  GBK=& # 39; GBK # 39;
  use UTF8=& # 39; utf - 8 # 39;
  
  current_encoding=UTF8
  popen=subprocess.Popen (& # 39; python D: \ \ test.py& # 39;代码,
  stdout=subprocess.PIPE,
  stderr=subprocess.PIPE,
  bufsize=1)
  ,呃=popen.communicate ()
  打印(& # 39;std_out: & # 39;+)
  打印(& # 39;std_err: & # 39;+犯错)
  打印(& # 39;returncode: & # 39;+ str (popen.returncode) 

关于如何在python中利用子流程管实现实时输出日志问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

如何在python中利用子流程管实现实时输出日志