Python - 如何在终止指定进程后隐藏输出
现在我正在尝试创建一个Python脚本,自动获取Android的日志信息。
下面这部分是我的代码:
logcat_process = subprocess.Popen('adb logcat -v time > logcat.log', shell=True)
time.sleep(5)
os.kill((logcat_process.pid)+1, signal.SIGKILL)
但是,每次在用os.kill结束进程后,
屏幕上都会打印出这样的信息:
"/bin/sh: line 1: 13961 Killed: 9 adb logcat -v time > logcat.log"**
有没有人知道怎么隐藏这个信息吗?
我希望脚本的输出结果能更简单明了……
2 个回答
0
在Python中,重定向标准输出和标准错误,并添加一个过滤器。
2
你可以这样做:
logcat_process = subprocess.Popen('adb logcat -v time > logcat.log', shell=True)
time.sleep(5)
save_stdout = sys.stdout
sys.stdout = open(r'/youlib..../trash.txt', 'w')
os.kill((logcat_process.pid)+1, signal.SIGKILL)
# regain stdout to screen
sys.stdout.close()
sys.stdout = save_stdout
这样做的话,当你执行kill
操作时,程序的输出信息会被转到一个叫trash.txt
的文件里。