当项目有很多文件时,要找出控制台的输出是在哪里print出来的很麻烦,不过这事对于强大的python来说小菜一碟。

先上代码和效果,再说明。

import sys,traceback
class mystdout:stdout = sys.stdoutdef 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输出流便于调试相关推荐

  1. python hack js_飘逸的python - hack输出流便于调试

    当项目有很多文件时,要找出控制台的输出是在哪里print出来的很麻烦,不过这事对于强大的python来说小菜一碟. 先上代码和效果,再说明. import sys,traceback class my ...

  2. python示例异常处理与程序调试_笔记:Python异常处理与程序调试

    Python异常处理与程序调试 Python提供了强大的异常处理机制,通过捕获异常可以提高程序的健壮性.异常处理还具有释放对象,中止循环的运行等作用.在程序运行的过程中,如果发生了错误,可以返回事先约 ...

  3. Python如何实现单步调试

    Python如何实现单步调试 https://www.cnblogs.com/jing1617/p/9396617.html https://www.cnblogs.com/xiaohai2003ly ...

  4. python编程(pdb调试)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 很长时间,我都以为python是没有单步调试的.也就是说,使用python不能像使用c一样快乐地 ...

  5. Python之pdb代码调试

    调试程序对于开发人员是一项非常重要的技能,它使得我们能够查看程序的运行过程,帮助我们准确的定位程序中的错误. 然而,令人意外的是,无数的Python工程师居然不知道如何对Python代码进行单步调试, ...

  6. 【python基础】断点调试pdb模块简易使用

    文章目录 前言 代码内使用 命令行使用 前言 断点调试是程序基础,pdb是Python自带的调试器,可以帮助我们在代码中设置断点,并且提供了一些命令来帮助我们在程序执行时进行调试. 代码内使用 以下是 ...

  7. python文档测试_【Python入门】19.调试器pdb、单元测试unittest和文档测试doctest

    笔记更新于2019年12月4日, 摘要:各种调试方法介绍assert.logging.调试器pdb:单元测试unittest的编写方法.如何运行单元测试:文档测试doctest的编写 写在前面:为了更 ...

  8. python设置断点_python调试 设置断点

    原博文 2013-12-09 11:29 − 1在所需要调试的地方加入如下代码: import pdb pdb.set_trace() 2调试代码常用命令: 实例请见参考文献: 1http://www ...

  9. vscode之python框架flask 断点调试的配置(官方推荐的配置,务必注意端口)

    flask的配置务必注意端口,默认端口5000如果被占用,你访问的数据无法返回,请更换端口! 更多细节配置,看官方文档,最权威:Debugging configurations for Python ...

最新文章

  1. 人在斯坦福,刚上CS224n
  2. 获取焦点改变输入框背景色
  3. 小程序空显示undefined_微信小程序显示ESP8266上传的实时显示温湿度数据
  4. C++ 对象间的赋值与拷贝构造函数
  5. iOS14更新了需要注意哪些适配
  6. SQL语句的执行计划
  7. 数值计算之第二期:误差分析
  8. jQuery从上手到飞天
  9. 3G模块拨号上网设置
  10. 爬虫 一些爬取图片时出现的错误
  11. Maven分模块管理时com.xx.xx.service等找不到
  12. Rest请求使用Jackson反序列化报错,Cannot deserialize instance of `java.lang.String` out of START_OBJECT toke
  13. 如何选择第三方电子发票平台服务商?
  14. python中根号怎么输入_python中根号怎么表示
  15. Mac系统关闭重启电脑后「重新打开应用及其窗口」功能的方法
  16. Unity 游戏实例开发集合 之 CompoundBigWatermelon (简单合成一个大西瓜) 休闲小游戏快速实现
  17. Makefile的最后一点问题也解决了
  18. C#搭建Json RPC2.0 Server/Client
  19. echarts:3、折线图
  20. 初级爬虫-获取网络图片

热门文章

  1. Android 的滑动分析以及各种实现
  2. 你所不知道的setTimeout
  3. [家里蹲大学数学杂志]第405期中国科学院数学与系统科学研究院2015年夏令营分析与代数试题...
  4. MFC中卡拉OK字体的定时器实现,使用DC的DrawText函数实现
  5. Java 和 Android系统环境变量设置
  6. shell对于字符串的操作
  7. 使用 OpenLDAP 集中管理用户帐号
  8. linux的HAL库函数,STM32 HAL库 IIC 协议库函数
  9. PHP中删除目录的三种方法
  10. 步步为营-11-ListT泛型的简单练习