python stdout_python--几种标准输出(stdout)重定向方式
系统: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)重定向方式相关推荐
- Python中三种表示NA的方式
Python中三种表示NA的方式 # -*- coding: utf-8 -*- import numpy as np import pandas as pd# data_frame = np.loa ...
- python打开一个文件-python下几种打开文件的方式
昨天看完了这本python进阶,感觉这本书对我启发很大,做了三张纸的笔记,方便我在遇到问题的时候翻阅,然后寻找可能的解决方案.作为一个使用Python一年的小白,虽然说不是小白,但是这一年来基本上是用 ...
- python下几种打开文件的方式
python下打开文件超级简单,不用导入任何包,直接输入 f = open('your_file.txt','r') 就可以打开一个文件进行操作.第二个参数为对文件的操作方式,'w'是写文件,已存在的 ...
- Python中两种文件修改的方式
文件的数据是存放于硬盘上的,因而只存在覆盖.不存在修改这么一说,我们平时看到的修改文件,都是模拟出来的效果,具体的说有两种实现方式. 一.方式一 将硬盘存放的该文件的内容全部加载到内存,在内存中是可以 ...
- python 随机请求头_为了爬虫换个头,我用python实现三种随机请求头方式!
相信大家在爬虫中都设置过请求头 user-agent 这个参数吧? 在请求的时候,加入这个参数,就可以一定程度的伪装成浏览器,就不会被服务器直接识别为spider.demo.code ,据我了解的,我 ...
- python 中三种定义类的方式
在Python中方,有三种定义类的方法: 常规方式.@classmethod修饰方式.@staticmethod修饰方式 class类定义 In [1]: class A:...: def commo ...
- Python的几种主动结束程序方式
1. sys.exit() 执行该语句会直接退出程序,这也是经常使用的方法,也不需要考虑平台等因素的影响,一般是退出Python程序的首选方法. 该方法中包含一个参数status,默认为0,表示正常退 ...
- php标准输出重定向,python标准输出重定向方式
一. 背景 在Python中,文件对象sys.stdin.sys.stdout和sys.stderr分别对应解释器的标准输入.标准输出和标准出错流.在程序启动时,这些对象的初值由sys.__stdin ...
- python中导入模块的方式_Python中几种导入模块的方式总结
模块内部封装了很多实用的功能,有时在模块外部调用就需要将其导入.常见的方式有如下几种: 1 . import >>> import sys >>> sys.path ...
最新文章
- Java项目:前后端分离疫情防疫平台设计和实现(java+springmvc+VUE+node.js+mybatis+mysql+springboot+redis+jsp)
- Spring Cloud配置中心获取不到最新配置信息的问题
- [转载]Outlook 2016 显示正在启动... 无法进入Outlook的解决方案
- SharePoint 2013 Disaster Recovery——迁移内容数据库
- Elasticsearch Terms Aggregation计数聚合详解
- python 变量转字符串_[Python Basic] 字符串处理以及类型转换 2
- Oracle 时区(TimeZone )-- DST
- 临界区设计太大或太小有何缺点_冷库风冷冷凝器和水冷冷凝器区别及优缺点比较...
- 【ELK】ELK安装与配置
- PyCharm 下提示 'no module named time'
- verilog代码编写工具
- DB2 SQLCODE 异常大全编辑(四)
- eclipse保存文件出现save could not be completed. Try File Save As..
- matlab绘制roc曲线,手把手画ROC曲线
- mysql 导入tsv文件,MySQL导出TSV格式文件
- L1-054 福到了 (15 分)
- 百度地图配合java 代码制作地图
- TX2刷机和软件安装过程记录
- 其实书童是一个集算法、实践、论文以及Transformer于一身的公号(往期索引大全)...
- 中国广电即将放号,或代表着中国移动反攻,联通先慌了