飘逸的python - hack输出流便于调试
来源:互联网 发布:wps数据有效性在哪里 编辑:程序博客网 时间:2024/06/05 03:00
当项目有很多文件时,要找出控制台的输出是在哪里print出来的很麻烦,不过这事对于强大的python来说小菜一碟。
输出
foo test_stdout.py(11)
bar test_stdout.py(12)
先上代码和效果,再说明。
import sys,tracebackclass mystdout: stdout = sys.stdout def write(self,_str): if _str != '\n': filepath,lineno = traceback.extract_stack()[-2][0:2] mystdout.stdout.write("%s\t%s(%s)\n"%(_str,filepath,lineno))sys.stdout = mystdout()print 'foo'print 'bar'
输出
foo test_stdout.py(11)
bar test_stdout.py(12)
当print 'foo'的时候,会调用sys.stdout.write(),不过因为sys.stdout = mystdout(),被重写了,所以实际调用的是mystdout类的write()方法。
在python中print会自动加换行符'\n',而且是单独sys.stdout.write('\n'),所以要if _str != '\n'。
再加上traceback获得文件名和行号,这样控制台的每个输出都能快速定位到在哪里print的了。
- 飘逸的python - hack输出流便于调试
- 飘逸的python
- 飘逸的python
- 飘逸的python
- 飘逸的python
- 飘逸的python - 赛程表算法
- 飘逸的python - 赛程表算法
- 飘逸的python - and_or大法
- 飘逸的python - 实现一个pretty函数漂亮的输出嵌套字典
- 飘逸的python - 常见的几个坑
- 飘逸的python - __dict__的妙用
- 飘逸的python - 优雅的执行程序
- 飘逸的python - 彩色你的控制台
- 飘逸的python - 鲜为人知的参数
- 飘逸的python - 装饰器的本质
- 飘逸的python - str vs. repr
- 飘逸的python - 偏函数functools.partial
- 飘逸的python - 发送qq邮件
- java四舍五入保留位数
- java 汉字转拼音
- 网站渗透的一些经验
- hdu Warm up 2( 二分图匹配)
- 如何用好谷歌
- 飘逸的python - hack输出流便于调试
- 学会了SEO就真的会网络营销吗?
- 2012年龙星计划机器学习课程总结
- Sqlite使用笔记
- How to Become an Active Listener
- hibernate环境搭建
- 2013华为招聘上机--- 字符串处理转换
- arcengine 调用arctoolbox功能的举例 spatialJoin
- 锚文本有网站优化时有什么作用及建立锚文本的注意事项