no time to say 直接上代码吧
1.Python adb交互
python2:
os.system()
python3:
import subprocess
2.生成日志的命令,这样是正确的
class abc(object): def getLogcat1(self): filename ='a'+ ".txt" logcat_file = open(filename, 'w') logcmd = "adb logcat -v time" pro = subprocess.Popen(logcmd, stdout=logcat_file, stderr=subprocess.PIPE) # logCmd = r'adb logcat -v time > .\{}'.format('name') # subprocess.getstatusoutput(r'adb logcat -v time > .\{}'.format('name')) return pro, filename if __name__ == '__main__': abc().getLogcat1()
具体在我项目中的实现,是这样的
#抓取日志 def logCat(self): nowtime = datetime.datetime.now().strftime('%Y%m%d%H%M%S') filename = nowtime + ".txt" logcat_file = open(filename, 'w') logcmd = 'adb logcat -v time' pro = subprocess.Popen(logcmd, stdout=logcat_file, stderr=subprocess.PIPE) #结束进程 def killPro(self, pro): pro.kill() # .close()是关闭文件的 .kill()是杀掉进程
#抓取日志
def logCat(self):
nowtime = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
filename = nowtime + ".txt"
logcat_file = open(filename, 'w')
logcmd = 'adb logcat -v time'
pro = subprocess.Popen(logcmd, stdout=logcat_file, stderr=subprocess.PIPE)
#结束进程
def killPro(self, pro):
pro.kill()
# .close()是关闭文件的 .kill()是杀掉进程
至于我项目中遇到的问题,简单说一下,
我用的这个命令
subprocess.getstatusoutput(r'adb logcat -v time > .\{}'.format(name))
虽然能够取到日志,但是会导致我的程序崩溃。