对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标准库之多进程(multiprocessing包)介绍
Nov 25 Python
Python中用psycopg2模块操作PostgreSQL方法
Nov 28 Python
Python Flask基础教程示例代码
Feb 07 Python
Python3单行定义多个变量或赋值方法
Jul 12 Python
python3.6.3转化为win-exe文件发布的方法
Oct 31 Python
Django之Mode的外键自关联和引用未定义的Model方法
Dec 15 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
Python安装tar.gz格式文件方法详解
Jan 19 Python
Python random模块制作简易的四位数验证码
Feb 01 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
Feb 10 Python
Django设置Postgresql的操作
May 14 Python
Python包管理工具pip的15 个使用小技巧
May 17 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实现下载文件的两种方法
2013/07/05 PHP
Smarty模板配置实例简析
2019/07/20 PHP
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
使用jquery获取网页中图片高度的两种方法
2013/09/26 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
jQuery中:focus选择器用法实例
2014/12/30 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
详解Vue.use自定义自己的全局组件
2017/06/14 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
vue.js删除列表中的一行
2018/06/30 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
JS实现可用滑块滑动的缓动图代码
2019/09/01 Javascript
python实现代理服务功能实例
2013/11/15 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
从头学Python之编写可执行的.py文件
2017/11/28 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
python读写配置文件操作示例
2019/07/03 Python
python异常触发及自定义异常类解析
2019/08/06 Python
Python Django2.0集成Celery4.1教程
2019/11/19 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
python代码中怎么换行
2020/06/17 Python
python pip如何手动安装二进制包
2020/09/30 Python
美国知名户外用品畅销中心:Sierra Trading Post
2016/07/19 全球购物
什么是servlet
2012/05/08 面试题
年终自我鉴定
2013/10/09 职场文书
优秀的计算机专业求职信范文
2013/12/27 职场文书
公司成立感言
2014/01/11 职场文书
信息技术教学反思
2014/02/12 职场文书
美术教师岗位职责
2014/03/18 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
小学运动会入场词
2015/07/18 职场文书