系统:windows为主

python 版本:2.7

1. 背景

在Python中,文件对象sys.stdin、sys.stdout和sys.stderr分别对应解释器的标准输入、标准输出和标准出错流。在程序启动时,这些对象的初值由sys.__stdin__、sys.__stdout__和sys.__stderr__保存,以便用于收尾(finalization)时恢复标准流对象。

print语句默认写入标准输出流,也可重定向至文件或其他可写对象(所有提供write方法的对象)。这样,就可以使用简洁的print语句代替笨拙的object.write('hello'+'\n')写法。因此,在python中调用 print obj 打印对象时,缺省情况下等效于调用sys.stdout.write(obj+'\n').

注意:print语句不以逗号为结尾时,会在输出字符串尾部自动附加一个换行符('\n');以逗号结尾时,则用一个空格代替附加的换行符。

2. 重定向

2.1 控制台重定向(>和>>)

最简单常用的输出重定向方式是利用控制台命令。这种重定向由控制台完成,而与Python本身无关。

Windows命令提示符(cmd.exe)和Linux Shell(bash等)均通过">"或">>"将输出重定向。其中,">"表示覆盖内容,">>"表示追加内容。类似地,"2>"可重定向标准错误。重定向到"nul"(Windows)或"/dev/null"(Linux)会抑制输出,既不屏显也不存盘。

以Windows命令提示符为例,将语句写入python脚本"test.py",并将python脚本输出重定向到文件"out.txt":

注意:type命令可直接显示文本文件的内容,类似Linux系统的cat命令。

(未实测)Linux Shell中执行python脚本时,命令行应以"python"开头(实测中windows cmd也需要这样做)。除">"或">>"重定向外,还可使用tee命令。该命令可将内容同时输出到终端屏幕和(多个)文件中,"-a"选项表示追加写入,否则覆盖写入。示例如下(echo $SHELL或echo $0显示当前所使用的Shell):

注意:控制台重定向的影响是全局性的,仅适用于比较简单的输出任务。

2.2 print >> 重定向

这种方式基于print语句的扩展形式,即"print >> obj, expr"。其中,obj为一个file-like(尤其是提供write方法的)对象,为None时对应标准输出(sys.stdout)。expr将被输出到该文件对象中。

实例:写一个脚本保存为test.py

1 #!/usr/bin/python

2 #-*- coding:utf-8 -*-

3

4 importStringIO,cStringIO,sys5 memo=cStringIO.StringIO()6 serr=sys.stderr7 file=open('out.txt','w+')8 print >> memo,'StringIO'

9 print >> serr,'stderr'

10 print >> file,'file'

11 print >> None,memo.getvalue()

屏显:"serr"和"StringIO"(两行),out.txt文件内写入"file"

未完待续。。。

参考:

http://www.jb51.net/article/90506.htm

python stdout_python--几种标准输出(stdout)重定向方式相关推荐

  1. Python中三种表示NA的方式

    Python中三种表示NA的方式 # -*- coding: utf-8 -*- import numpy as np import pandas as pd# data_frame = np.loa ...

  2. python打开一个文件-python下几种打开文件的方式

    昨天看完了这本python进阶,感觉这本书对我启发很大,做了三张纸的笔记,方便我在遇到问题的时候翻阅,然后寻找可能的解决方案.作为一个使用Python一年的小白,虽然说不是小白,但是这一年来基本上是用 ...

  3. python下几种打开文件的方式

    python下打开文件超级简单,不用导入任何包,直接输入 f = open('your_file.txt','r') 就可以打开一个文件进行操作.第二个参数为对文件的操作方式,'w'是写文件,已存在的 ...

  4. Python中两种文件修改的方式

    文件的数据是存放于硬盘上的,因而只存在覆盖.不存在修改这么一说,我们平时看到的修改文件,都是模拟出来的效果,具体的说有两种实现方式. 一.方式一 将硬盘存放的该文件的内容全部加载到内存,在内存中是可以 ...

  5. python 随机请求头_为了爬虫换个头,我用python实现三种随机请求头方式!

    相信大家在爬虫中都设置过请求头 user-agent 这个参数吧? 在请求的时候,加入这个参数,就可以一定程度的伪装成浏览器,就不会被服务器直接识别为spider.demo.code ,据我了解的,我 ...

  6. python 中三种定义类的方式

    在Python中方,有三种定义类的方法: 常规方式.@classmethod修饰方式.@staticmethod修饰方式 class类定义 In [1]: class A:...: def commo ...

  7. Python的几种主动结束程序方式

    1. sys.exit() 执行该语句会直接退出程序,这也是经常使用的方法,也不需要考虑平台等因素的影响,一般是退出Python程序的首选方法. 该方法中包含一个参数status,默认为0,表示正常退 ...

  8. php标准输出重定向,python标准输出重定向方式

    一. 背景 在Python中,文件对象sys.stdin.sys.stdout和sys.stderr分别对应解释器的标准输入.标准输出和标准出错流.在程序启动时,这些对象的初值由sys.__stdin ...

  9. python中导入模块的方式_Python中几种导入模块的方式总结

    模块内部封装了很多实用的功能,有时在模块外部调用就需要将其导入.常见的方式有如下几种: 1 . import >>> import sys >>> sys.path ...

最新文章

  1. Java项目:前后端分离疫情防疫平台设计和实现(java+springmvc+VUE+node.js+mybatis+mysql+springboot+redis+jsp)
  2. Spring Cloud配置中心获取不到最新配置信息的问题
  3. [转载]Outlook 2016 显示正在启动... 无法进入Outlook的解决方案
  4. SharePoint 2013 Disaster Recovery——迁移内容数据库
  5. Elasticsearch Terms Aggregation计数聚合详解
  6. python 变量转字符串_[Python Basic] 字符串处理以及类型转换 2
  7. Oracle 时区(TimeZone )-- DST
  8. 临界区设计太大或太小有何缺点_冷库风冷冷凝器和水冷冷凝器区别及优缺点比较...
  9. 【ELK】ELK安装与配置
  10. PyCharm 下提示 'no module named time'
  11. verilog代码编写工具
  12. DB2 SQLCODE 异常大全编辑(四)
  13. eclipse保存文件出现save could not be completed. Try File Save As..
  14. matlab绘制roc曲线,手把手画ROC曲线
  15. mysql 导入tsv文件,MySQL导出TSV格式文件
  16. L1-054 福到了 (15 分)
  17. 百度地图配合java 代码制作地图
  18. TX2刷机和软件安装过程记录
  19. 其实书童是一个集算法、实践、论文以及Transformer于一身的公号(往期索引大全)...
  20. 中国广电即将放号,或代表着中国移动反攻,联通先慌了

热门文章

  1. C语言 打字练习程序
  2. linux 解压 zip、改权限和复制
  3. 网上订餐的发展现状及前景分析
  4. beego + websocket + jexcel.js 实现在线表格(腾讯文档)
  5. 教你使用借贷宝0成本赚钱
  6. 装修 灵感 | 97m²现代简约三居,黑白灰格调打造温馨家
  7. 环境变量process.env.NODE_ENV详解
  8. 几种常见的python的Web框架比较
  9. 物理机安装centos7无网络的问题
  10. 信息安全学习(不断更新),希望可以坚持下去。