对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脚本把sqlAlchemy对象转换成dict的教程
May 29 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
Dec 12 Python
Python获取二维矩阵每列最大值的方法
Apr 03 Python
python检测主机的连通性并记录到文件的实例
Jun 21 Python
python将回车作为输入内容的实例
Jun 23 Python
python判断字符串或者集合是否为空的实例
Jan 23 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
Apr 12 Python
python机器人运动范围问题的解答
Apr 29 Python
Python正则表达式匹配数字和小数的方法
Jul 03 Python
Django 批量插入数据的实现方法
Jan 12 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
python实现的web监控系统
Apr 27 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的5个安全措施小结
2012/07/17 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
javascript hashtable实现代码
2009/10/13 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
js获取页面description的方法
2015/05/21 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
Vue 全局loading组件实例详解
2018/05/29 Javascript
微信小程序实现展示评分结果功能
2019/02/15 Javascript
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
2020/05/19 Javascript
vue如何搭建多页面多系统应用
2020/06/17 Javascript
JS实现炫酷轮播图
2020/11/15 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
Python中的rfind()方法使用详解
2015/05/19 Python
python九九乘法表的实例
2017/09/26 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
python根据文本生成词云图代码实例
2019/11/15 Python
Python3常见函数range()用法详解
2019/12/30 Python
J2EE面试题大全
2016/08/06 面试题
运动会广播稿500字
2014/01/28 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
入股协议书范本
2014/04/14 职场文书
办公室主任竞聘演讲稿
2014/05/15 职场文书
2015年毕业生自我鉴定模板
2014/09/19 职场文书
新郎婚礼致辞
2015/07/27 职场文书
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python