我有一个脚本是这样的,起一个进程在后台抓log, log会一直的刷,没有尽头。然后在特定的时间关闭它,或者说,我想什么时候不抓了就停了它。 停的方式呢,就是运行另一个脚本,这个怎么实现呢?抓log的代码如下:
- Python code
file=open("logs.txt","w") log=subprocess.Popen(["catch.exe","-t"],shell=False,stdout=subprocess.PIPE) while log.poll() == None: line=log.stdout.readline() file.write(line) else: file.close()
谢谢大家了~~~~~
------解决方案--------------------
如果这样呢?
- Python code
import os file=open("logs.txt","w") log=subprocess.Popen(["catch.exe","-t"],shell=False,stdout=subprocess.PIPE) stop = False while (log.poll() == None) and (not stop): line=log.stdout.readline() file.write(line) stop = os.path.exists("stop.txt") else: file.close()
------解决方案--------------------
阻塞式的是这样的,有非阻塞的subprocess,看看:
http://www.python.org/dev/peps/pep-3145/
http://code.google.com/p/subprocdev/source/browse/subprocess.py?r=2c925e935cad0166d5da85e37c742d8e7f609de5&spec=svn2c925e935cad0166d5da85e37c742d8e7f609de5