python读取print输出的内容_Python文件中将print的输出内容重定向到变量中
有时候需要用到别人的代码, 但是又不想修改别人的文件, 想拿到输出的结果, 这时候就需要使用sys模块, 将print输出的内容重定向到变量中.
Python调用sys模块中的sys.stdout, 实际上是调用的sys.stdout.write方法, 这样如果操作的对象是文件就不会有问题.
import sys
# 保存当前的sys.stdout状态, 开始捕获当前的输出
current = sys.stdout
f = open(path, 'w')
# 这一步实际是sys.stdout.write, 当sys捕获到了print输出的时候, 就写入f里面
sys.stdout = f
print 'test'
# 恢复状态, 之后的print内容都不捕获了
sys.stdout = current
但是当把f文件对象改为一个变量时, 就会报错AttributeError: 'str' object has no attribute 'write', 原因是变量没有write方法, 所以根据这个, 我们可以重写一个方法.
import sys
class __Autonomy__(object):
"""
自定义变量的write方法
"""
def __init__(self):
"""
init
"""
self._buff = ""
def write(self, out_stream):
"""
:param out_stream:
:return:
"""
self._buff += out_stream
current = sys.stdout
a = __Autonomy__()
# 会调用a的write方法, 和self._buff的内容拼接
sys.stdout = a
print 'test'
sys.stdout = current
# 输出捕获的内容
print a._buff
python读取print输出的内容_Python文件中将print的输出内容重定向到变量中相关推荐
- python导出数据找不到csv_【记录】使用Python读取/导出(写入)CSV文件
想要用python处理csv文件. 去查了下,python中本身就自带csv模块. 然后参考在线手册: 去试试. [用python生成csv] 1. 按照手册的例子,试了试:import csv wi ...
- python读取字符串指定位置字符_python读取txt文件中特定位置字符的方法
python读取txt文件中特定位置字符的方法 如下所示: # -*- coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding(' ...
- python 读取特定一段文本_python提取文本内容 python读取文本每行指定内容
用"python"怎么提取文件里的指定内容?原来这些年,他痊愈的只是外表,有一种伤,它深入骨髓,在人看不见的地方肆虐. python读取文件内容的方法: 一.最方便的方法是一次性读 ...
- python读取指定行到最后一行_python读取文件最后一行两种方法
原博文 2018-09-27 13:58 − 1)常规方法:从前往后依次读取 步骤:open打开文件. ... 相关推荐 2019-09-28 21:13 − Python python是一种跨平台的 ...
- python读取文件名包含某字符的文件_python 读写文件时判断文件名是否包含某字符串...
原博文 2020-08-06 02:27 − key = 'keyword' for file in os.listdir(src_dir_path): print(file) if key in f ...
- python open方法下file模块_python 文件操作
一.基本概述 基本的文件操作也就常见的几种,创建.打开.读取.写入和关闭文件等.Python中有几个内置模块和方法来处理文件.这些方法在例如os,os.path,shutil和pathlib等等几个模 ...
- python读取txt、csv以及xml文件
1.读取txt文件 txt文件是经常需要被操作的文件类型,python提供了以下几种常见的读取txt文件的方式: * read(): 读取整个文件 * readline(): ...
- python读取多个excel表_python 实现读取一个excel多个sheet表并合并的方法
python 实现读取一个excel多个sheet表并合并的方法 如下所示: import xlrd import pandas as pd from pandas import DataFrame ...
- python画二维矩阵图_Python实现二维数组输出为图片
Python实现二维数组输出为图片 对于二维数组,img_mask [[ 0 0 0 ..., 7 7 7] [ 0 0 0 ..., 7 7 7] [ 0 0 0 ..., 7 7 7] ..., ...
最新文章
- Linux中环境变量与文件查找
- 年终盘点:2021年AI领域值得关注的十件事
- SAP BW/4 HANA亮点解析
- android交叉编译libxml2,Openwrt 交叉编译libxml2(示例代码)
- ActiveMQ 的连接和会话
- 中国移动与清华大学达成战略合作,将共同研究6G
- echarts 柱状图不显示y坐标轴_Python+matplotlib自定义坐标轴位置、颜色、箭头
- mysql 8.0 重置数据库,Mysql 8.0安装及重置密码问题
- 在Mac下配置Appium环境
- bootstrap学习笔记-(1-初识bootstrap)
- 什么是自组织竞争网络?
- python oserror 22_Python3 (Win10) 打开文件报错OSError: [Errno 22]
- mac 打开网页慢_老Mac电脑打开网页慢怎么办
- 用 Python 实现朋友圈中的九宫格图片 看这一篇就够了
- aws php 上传文件 限制大小_单个文件大小 上传百度云盘 微信发送 有大小限制 怎么破?...
- 使用Docker如何搭建Web漏洞测试环境?
- 大数据冲击下图书出版编辑转型策略探析(非原创)
- Docker 进入Mysql容器
- 云南昆明主城区一在建工地围墙倒塌致2人死亡
- HBase轻松入门之HBase架构图解析
热门文章
- snmp v3的安全配置 snmp认证与加密配置(53)
- USACO 2006 Open, Problem. The Country Fair 动态规划
- rss 订阅实现-iOS版
- 我的第一个C++程序——方块游戏 v1.0
- postgreSQL源码分析——索引的建立与使用——各种索引类型的管理和操作(1)
- 案例:实现文件下载并能正确显示中文文件名
- java异步获取结果_java获取异步计算的结果
- asp.net gridview 模板列 弹出窗口编辑_【线上课堂】中国(辽宁)国际贸易单一窗口企业资质系统业务操作...
- 矩阵sum_Matlab-sum与cumsum函数
- 计算机加经济学加自动化,MIT经济学家戳破机器人真相:除了能取代你,价值微乎其微...