cmd非运行完再保存,结果显示&保存同时进行
#coding:utf-8 """ fps信息获取到文件 """ import sys import subprocess class Logger(object): def __init__(self, filename="Default.log"): self.terminal = sys.stdout self.log = open(filename, "a") def write(self, message): self.terminal.write(message) self.log.write(message) self.log.flush()#这个用来将屏幕输出一行,就保存到txt一行,而不是等cmd运行完再保存 def flush(self): pass def main(): sys.stdout = Logger("fps_01.txt") cmd="adb logcat -s sdktest" # 执行cmd命令,并读取返回值,屏幕无输出,文件有记录 p = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True) result_line = p.stdout.readline() while result_line: print(result_line) result_line = p.stdout.readline() if __name__ == '__main__': main()
精简,最终版
适用于边屏幕输出,边保存到文件,且屏幕输出是实时的保存到文件。
cmd命令实时更新,非运行完后整体读取。