Python - 如何在终止指定进程后隐藏输出

0 投票
2 回答
1076 浏览
提问于 2025-04-18 04:03

现在我正在尝试创建一个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的文件里。

撰写回答