1. 程式人生 > >cmd非運行完再保存,結果顯示&保存同時進行

cmd非運行完再保存,結果顯示&保存同時進行

filename ive class txt default read 執行cmd test lines

#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命令實時更新,非運行完後整體讀取。

cmd非運行完再保存,結果顯示&保存同時進行