cmd命令行结果保存到txt里,屏幕显示一行就保存一行到txt

#coding:utf-8
"""
写入文件的同时,在屏幕输出
"""
import os

import sys


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


sys.stdout = Logger("yourlogfilename.txt")
# print("Hello world !") # this is should be saved in yourlogfilename.txt

cmd="ping baidu.com"
#----------------------------
#这种系统的输出,没有打印到logger的txt里,只是在界面输出了。
# os.system(cmd)
#----------------------------

# import subprocess
# #这种也没有记录到txt
# p = subprocess.Popen(cmd, shell=True)
# p.wait()
# #print(p)
#----------------------------
import subprocess
#这种有记录到txt里
p = subprocess.Popen(cmd,
        stdout=subprocess.PIPE, universal_newlines=True)
p.wait()
result_lines = p.stdout.readlines()

for line in result_lines:
    print(line)
#----------------------------

  

猜你喜欢

转载自www.cnblogs.com/qiu-1010/p/10709937.html