标准输出stdout、标准错误stderr 分类: python python基础学习 2013-06-17 18:08 308人阅读 评论(0) 收藏
2013-06-17 18:08
916 查看
import sys
for i in range(3):
sys.stdout.write("Python)
sys.stderr.write("-----")
stdout 和 stderr都是类文件对象。它们没有read()方法、只有write()方法,然而,[b]它们仍然是类文件对象,因此你可以将其它任何 (类) 文件对象赋值给它们来重定向其输出。[/b]
输出重定向:
import sys
print 'Dive in'
saveout = sys.stdout #保存当前重定向类文件对象,以便后面还原
fsock = open('out.log', 'w')
sys.stdout = fsock #更改重定向至新建的fsock对象,后续的输出都会被重定向到新建的fsock类文件对象中
print 'This message will be logged instead of displayed' #将标准输出打印到out.log 文件中
sys.stdout = saveout # 还原重定向
print "I am back"
fsock.close()
例如你想把print的内容写向一下log文件,你可以这么做
stdout_bk = sys.stdout #备份一下标准输出
sys.stdout = open("xx.log", "w") #标准输出重定向到一个文件
这样子,print的内容就会全部输向xx.log
==================================================================
linux环境下:
flog = open("xx.log", "w")
print >> flog, "sth. to print"
建议用这种形式的重定向
一是,所见即所得
二是,不用备份系统的标准输出
==================================================================
重定向错误信息:
#stderr.py
import sys
fsock = open("error.log",'w')
sys.stderr = fsock
print "entering function" # 使用sys.stdout类文件对象。而不是sys.stderr对象
raise Exception,"this error will be logged"
for i in range(3):
sys.stdout.write("Python)
sys.stderr.write("-----")
stdout 和 stderr都是类文件对象。它们没有read()方法、只有write()方法,然而,[b]它们仍然是类文件对象,因此你可以将其它任何 (类) 文件对象赋值给它们来重定向其输出。[/b]
输出重定向:
import sys
print 'Dive in'
saveout = sys.stdout #保存当前重定向类文件对象,以便后面还原
fsock = open('out.log', 'w')
sys.stdout = fsock #更改重定向至新建的fsock对象,后续的输出都会被重定向到新建的fsock类文件对象中
print 'This message will be logged instead of displayed' #将标准输出打印到out.log 文件中
sys.stdout = saveout # 还原重定向
print "I am back"
fsock.close()
例如你想把print的内容写向一下log文件,你可以这么做
stdout_bk = sys.stdout #备份一下标准输出
sys.stdout = open("xx.log", "w") #标准输出重定向到一个文件
这样子,print的内容就会全部输向xx.log
==================================================================
linux环境下:
flog = open("xx.log", "w")
print >> flog, "sth. to print"
建议用这种形式的重定向
一是,所见即所得
二是,不用备份系统的标准输出
==================================================================
重定向错误信息:
#stderr.py
import sys
fsock = open("error.log",'w')
sys.stderr = fsock
print "entering function" # 使用sys.stdout类文件对象。而不是sys.stderr对象
raise Exception,"this error will be logged"
[you@localhost kgp]$ python stderr.py
[you@localhost kgp]$ cat error.log
Traceback (most recent line last):
File "stderr.py", line 5, in ?
raise Exception, 'this error will be logged'
Exception: this error will be logged
相关文章推荐
- 递归调用输出元素 分类: python 小练习 python基础学习 2013-06-30 11:54 278人阅读 评论(0) 收藏
- 解析XML文件总结 分类: python基础学习 python 2013-06-17 12:04 232人阅读 评论(0) 收藏
- 输出包含共同元素的变量值 分类: python 小练习 python基础学习 2014-03-11 13:55 188人阅读 评论(0) 收藏
- python数据持久存储:pickle模块的基本使用 分类: python python基础学习 python 小练习 2013-06-17 14:41 209人阅读 评论(0) 收藏
- python之string模块 分类: python基础学习 python Module 2013-08-27 13:58 241人阅读 评论(0) 收藏
- file()创建文件方法 分类: python python基础学习 2012-12-24 18:17 239人阅读 评论(0) 收藏
- eval() 分类: python基础学习 2013-08-16 18:00 324人阅读 评论(0) 收藏
- Python下调用Linux的Shell命令 分类: ubuntu python基础学习 2014-01-15 17:12 15631人阅读 评论(1) 收藏
- Linux下python升级至2.7步骤 分类: python基础学习 python下载 2013-09-29 11:24 4266人阅读 评论(2) 收藏
- 使用set()求出列表交集 分类: python基础学习 2013-06-16 17:00 241人阅读 评论(0) 收藏
- Python下划线与命名规范 分类: python基础学习 2013-09-02 21:29 419人阅读 评论(0) 收藏
- win7 下安装ipython 分类: python基础学习 software 2013-10-19 12:23 1383人阅读 评论(0) 收藏
- 使用os.popen/commands.getoutput查询指定端口号的服务 分类: python 小练习 open()文件读写 python基础学习 2013-09-17 17:49 798人阅读 评论(0) 收藏
- python参数 分类: python基础学习 python 2013-08-23 15:06 217人阅读 评论(0) 收藏
- 继承父类,调用父类中的方法 分类: python 小练习 python基础学习 2014-01-10 17:54 325人阅读 评论(0) 收藏
- 移除连续重复的字符串元素 分类: python 小练习 python基础学习 divide into python 2014-01-01 15:53 392人阅读 评论(0) 收藏
- 使用locals()获得类,进行分发 分类: python 小练习 divide into python python基础学习 2014-02-21 14:51 217人阅读 评论(0) 收藏
- python变量赋值(可变与不可变) 分类: python基础学习 python Module 2013-10-30 11:59 1036人阅读 评论(0) 收藏
- bisect模块 分类: python基础学习 python 2013-06-28 17:58 288人阅读 评论(0) 收藏
- 去除字符串重复数据 分类: python基础学习 2013-08-08 17:44 335人阅读 评论(0) 收藏