Python subprocess.Popen 如何对子线程进行清理

· 2020年09月29日 · 最后由 测试老菜 回复于 2020年10月07日 · 2407 次阅读

import sys, os, subprocess
p = subprocess.Popen('adb logcat >d:\logcat12.txt',shell=True)
try:
p.communicate(timeout = 5)
except subprocess.TimeoutExpired:
print('执行超时')
p.kill()

5 秒超时后,执行程序会断开。但 adb logcat 命令并没有断开(日志还会生成、进程中存在该命令、文件无法删除)。

大佬们别放假呀!!!!!!!!!!!

共收到 1 条回复 时间 点赞
1楼 已删除

使用 Popen 把输出写入到文件可以解决你的问题。

with open("./logcat.log", "wb") as f:
           p = Popen("adb logcat -v time", shell=True, stdout=f, stderr=f)
3楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册