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

时间:2022-03-08 13:48:49
#coding:utf-8
"""
1.重定向print
2.python与cmd命令
"""
import sys
import os
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
# path = os.path.abspath(os.path.dirname(__file__))
# type = sys.getfilesystemencoding() def main():
#执行cmd命令,无返回值
sys.stdout = Logger("fps_01.txt") cmd="ping baidu.com"
#第一种os模块:cmd交互第一种用os.system,无返回,使用前需要import os
# os.system(cmd) #第二种os模块:os.popen,也可以写入到txt内,使用Popen模块产生新的process
#用os模块的这两种,都是用当前进程来调用,也就是说它们都是阻塞式的 # result = os.popen(cmd)
# res=result.read()
# for line in res.splitlines():
# print(line)
#也可以这样,同样意思
r = os.popen(cmd)
info = r.readline()
while info:
print(info)
info = r.readline()
#第三种subprocess模块:执行cmd命令,不配合print重写,无返回
# p=subprocess.Popen(cmd,shell=True)
# p.wait() # 第三种subprocess模块:执行cmd命令,并读取返回值,屏幕无输出,文件有记录,
# 如果运行cmd时产生的内容非常多,函数非常容易阻塞住。解决办法是不使用wait()方法
# p = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True)
# #p.wait()
# result_line = p.stdout.readline()
#
# while result_line:
# print(result_line)
# result_line = p.stdout.readline() if __name__ == '__main__':
main()

  

cmd命令行结果保存到txt里,屏幕显示一行就保存一行到txt的更多相关文章

  1. windows脚本(VBS)之cmd命令行的妙用

    windows脚本(VBS)之cmd命令行的妙用 (2009-08-06 13:40:55) 转载▼ 标签: 脚本 cmd 命令行 vbs js 简单 公式 windows it 分类: 计算机 脚本 ...

  2. Mongodb的备份,恢复,导入与导出(cmd命令行实现)

    要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下命令均在cmd ...

  3. 【转】PowerShell入门(二):PowerShell是Cmd命令行的加强版吗?

    转至:http://www.cnblogs.com/ceachy/archive/2013/01/31/PowerShell_vs_Cmd.html PowerShell是命令行的加强版吗?Power ...

  4. 在windows中,如何使用cmd命令行窗口正确显示编码为utf-8格式的文字

    在windows中,如何使用cmd命令行窗口正确显示编码为utf-8格式的文字呢? 正确的步骤如下: 1, 打开cmd命令行窗口 2, 输入命令 >chcp 65001 数字65001代表的是c ...

  5. 在windows下使用cmd命令行对java文件进行编译和执行

    windows下利用cmd命令行可以调用jdk里的javac.exe和java.exe对java文件进行编译和执行,前提是jdk已成功安装并正确配置相关环境变量 相关配置链接:java基础学习总结—— ...

  6. windows下cmd命令行显示UTF8字符设置(CHCP命令)

    本文由 www.169it.com 收集整理 在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能正确显示文件中的内容.在默认情况下 ...

  7. Windows 如何在cmd命令行中查看、修改、删除与添加环境变量

    转自:http://www.cnblogs.com/saptechnique/archive/2013/02/17/2914222.html 首先明确一点: 所有的在cmd命令行下对环境变量的修改只对 ...

  8. 在CMD命令行下关闭进程的命令

    转载: [重要]在CMD命令行下关闭进程的命令━━━━━━━━━━━━━━━━━━━━━━━━━━ 方法一: 在"运行"中输入:ntsd -c q -pn 程序名字(在MS-Dos ...

  9. 【转】Python实现修改Windows CMD命令行输出颜色(完全解析)

    用Python写命令行程序的时候,单一的输出颜色太单调.其实我们可以加些色彩,比如用红色表示警告,绿色表示结果正常等.网上也有几篇类似的帖子,但是没有把问题讲清楚,贴的代码也不是太清晰.这里,对Win ...

随机推荐

  1. Python爬虫爬取百度贴吧的帖子

    同样是参考网上教程,编写爬取贴吧帖子的内容,同时把爬取的帖子保存到本地文档: #!/usr/bin/python#_*_coding:utf-8_*_import urllibimport urlli ...

  2. 关于leetcode中链表中两数据相加的程序说明

    * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ ...

  3. 今天心情好,一起探讨下《送给大家的200兆SVN代码服务器》怎么管理我们的VS代码?

    前几天给大家免费送了个200兆SVN代码服务器(今天心情好,给各位免费呈上200兆SVN代码服务器一枚,不谢!),还木有领取的速度戳链接哦! 好几位园友拿到SVN服务器都对其赞不绝口,我也用这个服务器 ...

  4. Extjs中给同一个GridPanel中的事件添加参数的方法

    Extjs中给同一个GridPanel中的事件添加参数的方法: this.isUse = new Ext.Action({            text:'启用',            scope ...

  5. TI CC254x BLE教程 2

    连接更新请求(connection update request) 如果slave不满意现有的连接参数, 比如间隔, 延迟等等, 可以向master提出自己希望的参数范围 连接终止(connectio ...

  6. bug汇总 (EF,Mvc,Wcf)

    此博客用于在开发过程总bug及其解决方案的记录. 1. 异常信息:  ObjectStateManager 中已存在具有同一键的对象.ObjectStateManager 无法跟踪具有相同键的多个对象 ...

  7. 使用socket实现信用卡程序和迷你购物商城

    #-*- coding:utf-8 -*- from moudle import * import socketserver import json import os import time imp ...

  8. FTP之虚拟用户

    基于虚拟用户访问ftp关闭防火墙,selinux 过程如下1.装包,配置.起服务配置过程如下: 需写入vsftpd.conf配置文件中的内容如下: anonymous_enable=NO ---- 匿 ...

  9. sql 将某列转换成一个字符串 for xml path用法

    declare @test table( name varchar(10)) insert into @test values('a') insert into @test values('b') i ...

  10. 【Python3之面向对象进阶】

    一.isinstance和issubclass 1.isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj=Foo() p ...