有时候需要用到别人的代码, 但是又不想修改别人的文件, 想拿到输出的结果, 这时候就需要使用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的输出内容重定向到变量中相关推荐

  1. python导出数据找不到csv_【记录】使用Python读取/导出(写入)CSV文件

    想要用python处理csv文件. 去查了下,python中本身就自带csv模块. 然后参考在线手册: 去试试. [用python生成csv] 1. 按照手册的例子,试了试:import csv wi ...

  2. python读取字符串指定位置字符_python读取txt文件中特定位置字符的方法

    python读取txt文件中特定位置字符的方法 如下所示: # -*- coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding(' ...

  3. python 读取特定一段文本_python提取文本内容 python读取文本每行指定内容

    用"python"怎么提取文件里的指定内容?原来这些年,他痊愈的只是外表,有一种伤,它深入骨髓,在人看不见的地方肆虐. python读取文件内容的方法: 一.最方便的方法是一次性读 ...

  4. python读取指定行到最后一行_python读取文件最后一行两种方法

    原博文 2018-09-27 13:58 − 1)常规方法:从前往后依次读取 步骤:open打开文件. ... 相关推荐 2019-09-28 21:13 − Python python是一种跨平台的 ...

  5. python读取文件名包含某字符的文件_python 读写文件时判断文件名是否包含某字符串...

    原博文 2020-08-06 02:27 − key = 'keyword' for file in os.listdir(src_dir_path): print(file) if key in f ...

  6. python open方法下file模块_python 文件操作

    一.基本概述 基本的文件操作也就常见的几种,创建.打开.读取.写入和关闭文件等.Python中有几个内置模块和方法来处理文件.这些方法在例如os,os.path,shutil和pathlib等等几个模 ...

  7. python读取txt、csv以及xml文件

    1.读取txt文件 txt文件是经常需要被操作的文件类型,python提供了以下几种常见的读取txt文件的方式: * read():              读取整个文件 * readline(): ...

  8. python读取多个excel表_python 实现读取一个excel多个sheet表并合并的方法

    python 实现读取一个excel多个sheet表并合并的方法 如下所示: import xlrd import pandas as pd from pandas import DataFrame ...

  9. python画二维矩阵图_Python实现二维数组输出为图片

    Python实现二维数组输出为图片 对于二维数组,img_mask [[ 0 0 0 ..., 7 7 7] [ 0 0 0 ..., 7 7 7] [ 0 0 0 ..., 7 7 7] ..., ...

最新文章

  1. Linux中环境变量与文件查找
  2. 年终盘点:2021年AI领域值得关注的十件事
  3. SAP BW/4 HANA亮点解析
  4. android交叉编译libxml2,Openwrt 交叉编译libxml2(示例代码)
  5. ActiveMQ 的连接和会话
  6. 中国移动与清华大学达成战略合作,将共同研究6G
  7. echarts 柱状图不显示y坐标轴_Python+matplotlib自定义坐标轴位置、颜色、箭头
  8. mysql 8.0 重置数据库,Mysql 8.0安装及重置密码问题
  9. 在Mac下配置Appium环境
  10. bootstrap学习笔记-(1-初识bootstrap)
  11. 什么是自组织竞争网络?
  12. python oserror 22_Python3 (Win10) 打开文件报错OSError: [Errno 22]
  13. mac 打开网页慢_老Mac电脑打开网页慢怎么办
  14. 用 Python 实现朋友圈中的九宫格图片 看这一篇就够了
  15. aws php 上传文件 限制大小_单个文件大小 上传百度云盘 微信发送 有大小限制 怎么破?...
  16. 使用Docker如何搭建Web漏洞测试环境?
  17. 大数据冲击下图书出版编辑转型策略探析(非原创)
  18. Docker 进入Mysql容器
  19. 云南昆明主城区一在建工地围墙倒塌致2人死亡
  20. HBase轻松入门之HBase架构图解析

热门文章

  1. snmp v3的安全配置 snmp认证与加密配置(53)
  2. USACO 2006 Open, Problem. The Country Fair 动态规划
  3. rss 订阅实现-iOS版
  4. 我的第一个C++程序——方块游戏 v1.0
  5. postgreSQL源码分析——索引的建立与使用——各种索引类型的管理和操作(1)
  6. 案例:实现文件下载并能正确显示中文文件名
  7. java异步获取结果_java获取异步计算的结果
  8. asp.net gridview 模板列 弹出窗口编辑_【线上课堂】中国(辽宁)国际贸易单一窗口企业资质系统业务操作...
  9. 矩阵sum_Matlab-sum与cumsum函数
  10. 计算机加经济学加自动化,MIT经济学家戳破机器人真相:除了能取代你,价值微乎其微...