对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处理python编码问题
Mar 13 Python
python在windows下创建隐藏窗口子进程的方法
Jun 04 Python
python获取文件扩展名的方法
Jul 06 Python
Python OpenCV对本地视频文件进行分帧保存的实例
Jan 08 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
May 16 Python
flask框架jinja2模板与模板继承实例分析
Aug 01 Python
python 生成器和迭代器的原理解析
Oct 12 Python
通过实例了解python property属性
Nov 01 Python
浅谈Django2.0 加xadmin踩的坑
Nov 15 Python
MxNet预训练模型到Pytorch模型的转换方式
May 25 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
May 26 Python
python 使用elasticsearch 实现翻页的三种方式
Jul 31 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
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
PHP 数组遍历方法大全(foreach,list,each)
2010/06/30 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
微信公众平台开发(五) 天气预报功能开发
2016/12/03 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)
2014/05/06 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
[47:20]DAC2018 4.4 淘汰赛 Optic vs Mineski 第一场
2018/04/05 DOTA
[02:05:03]完美世界DOTA2联赛循环赛 LBZS VS Matador BO2 10.28
2020/10/28 DOTA
django 多数据库配置教程
2018/05/30 Python
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
2020/02/12 Python
Django框架请求生命周期实现原理
2020/11/13 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
违反课堂纪律检讨书
2014/01/19 职场文书
我的动漫时代的创业计划书范文
2014/01/27 职场文书