对Python _取log的几种方式小结


Posted in Python onJuly 25, 2019

1. 使用.logfile 方法

#!/usr/bin/env python
import pexpect
import sys
host="146.11.85.xxx"
user="inteuser"
password="xxxx"
command="ls -l"
child = pexpect.spawn('ssh -l %s %s %s'%(user, host, command))
child.expect('password:')
child.sendline(password)
childlog = open('promp.log',"ab") #文件属性必须为二进制写+,否则会报错
child.logfile = childlog
child.expect(pexpect.EOF)#如果子进程结束了,你再去child.expect(pattern)会报EOF错误,模块提供了一种方法,child.expect(pexpect.EOF),不会报错,如果子进程结束了返回0
childlog.close()

2.改变标准输出sys.stdout的输出对象,将log print到文件

#!/usr/bin/env python
import pexpect
import sys
host="146.11.85.xxx"
user="inteuser"
password="xxxx"
command="ls -l"
child = pexpect.spawn('ssh -l %s %s %s'%(user, host, command))
child.expect('password:')
child.sendline(password)
__console__ = sys.stdout #备份当前的标准输出到命令行
childlog = open('promp.log',"w") #这里文件属性不能为二进制,否则报错TypeError: a bytes-like object is required, not 'str'
sys.stdout = childlog   #将childlog设为标准输出的对像
child.expect(pexpect.EOF)
print(child.before.decode()) #这里使用decode()函数,将输出的目录信息格式化
#child.before 这个值包含文本从头一直到匹配的位置 
childlog.close()
sys.stdout = __console__  #还原标准输出对象为命令行

以上这篇对Python _取log的几种方式小结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中逗号的三种作用实例分析
Jun 08 Python
python模块之time模块(实例讲解)
Sep 13 Python
Python3.4编程实现简单抓取爬虫功能示例
Sep 14 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
Feb 18 Python
如何在python字符串中输入纯粹的{}
Aug 22 Python
python版飞机大战代码分享
Nov 20 Python
python调用接口的4种方式代码实例
Nov 19 Python
解决tensorflow添加ptb库的问题
Feb 10 Python
python使用matplotlib:subplot绘制多个子图的示例
Sep 24 Python
Python如何使用ConfigParser读取配置文件
Nov 12 Python
Python基础之字符串格式化详解
Apr 21 Python
python爬取网页版QQ空间,生成各类图表
Jun 02 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 #Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
Jul 25 #Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
Jul 25 #Python
Python 3.8 新功能全解
Jul 25 #Python
python3.7 的新特性详解
Jul 25 #Python
python issubclass 和 isinstance函数
Jul 25 #Python
django的分页器Paginator 从django中导入类
Jul 25 #Python
You might like
PHP 数组教程 定义数组
2009/10/23 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
ThinkPHP发送邮件示例代码
2016/10/08 PHP
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
javascript 运算数的求值顺序
2011/08/23 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
jQuery 全选/反选以及单击行改变背景色实例
2013/07/02 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
Angularjs 实现分页功能及示例代码
2016/09/14 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
JS给按钮添加跳转功能类似a标签
2017/05/30 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
介绍Python的@property装饰器的用法
2015/04/28 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
2019/06/19 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
Python RabbitMQ实现简单的进程间通信示例
2020/07/02 Python
python调用私有属性的方法总结
2020/07/24 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
欧舒丹美国官网:L’Occitane美国
2018/02/23 全球购物
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
2014/07/11 面试题
信息管理员岗位职责
2013/12/01 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
大学生优秀团员事迹材料
2014/01/30 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
开业庆典策划方案
2014/02/18 职场文书
小学老师寄语大全
2014/04/04 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
java设计模式--七大原则详解
2021/07/21 Java/Android