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

· September 29, 2020 · Last by 测试老菜 replied at October 07, 2020 · 2676 hits

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 条回复 时间 点赞
1Floor has deleted

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

with open("./logcat.log", "wb") as f:
           p = Popen("adb logcat -v time", shell=True, stdout=f, stderr=f)
3Floor has deleted
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up