在urllib2
中,当我指定debuglevel
参数时,如何重定向特定开启者生成的输出?
E.g。对于这个例子
opener = urllib2.build_opener(urllib2.HTTPHandler(debuglevel=2))
opener.open("http://stackoverflow.com")
我如何在类似于sys.stderr
的“对象”中捕获输出并能够在任何我喜欢的地方写出来?
我有一个使用日志记录和stderr
的脚本,此特定输出应该转到日志而不会妨碍任何其他输出。
答案 0 :(得分:1)
使用print
statements that print to sys.stdout
生成调试输出。
redirect sys.stdout
temporarily for the duration of the urllib2
request很容易,但效果是全局的,即如果有其他Python线程正在运行,那么如果他们将某些内容打印到sys.stdout
,他们就会看到更改。
您可能无法覆盖Python 2.6中的print
语句。您可以在Python 3中执行此操作,其中print()
是一个函数。