天天看点

python adb 交互

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))