您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

沉默记录器和打印到屏幕 – Python

5b51 2022/1/14 8:22:54 python 字数 3129 阅读 574 来源 www.jb51.cc/python

我的 python脚本有问题. 它在屏幕上打印了大量数据,我想阻止各种打印进行屏幕显示. 编辑: 我正在使用的库是机械化的,它在屏幕上打印了大量数据. 我把它们设置为假,没有运气! br.set_debug_redirects(False) br.set_debug_responses(False) br.set_debug_http(False) 有任何想法吗? 帮助将是惊人的,非常感谢! (根

概述

它在屏幕上打印了大量数据,我想阻止各种打印进行屏幕显示.

编辑:

我正在使用的库是机械化的,它在屏幕上打印了大量数据.

我把它们设置为假,没有运气!

br.set_debug_redirects(False)
br.set_debug_responses(False)
br.set_debug_http(False)

有任何想法吗?

帮助将是惊人的,非常感谢!

如果您不想禁用所有输出,可以尝试特定于机械化自身. http://wwwsearch.sourceforge.net/mechanize/提供了一个片段,我已经修改过(虽然我不确定它是否可行):

import logging
logger = logging.getLogger("mechanize")
# only log really bad events
logger.setLevel(logging.ERROR)

当您打印某些内容时,它会通过sys.stdout文件进入屏幕.您可以将此文件更改为任何其他文件(例如,您打开的日志文件),以便不会在屏幕上打印任何内容

import sys
# save the old stdout so you can print later (do sys.stdout = OLD_STDOUT)
OLD_STDOUT = sys.stdout
sys.stdout = open("logfile.txt",'w')

当然,如果你正在谈论你正在调用的某个库,它可能会打印到sys.stderr.幸运的是,你可以为这个做同样的事情(从上面继续):

OLD_STDERR = sys.stderr
sys.stderr = open("errorLog.txt",'w')

现在,如果由于某种原因,您想要完全忽略stdout(或stderr)并且再也看不到它,您可以定义自己的类文件类,只丢弃对象:

class Discarder(object):
    def write(self,text):
        pass # do nothing
# Now discard everything coming out of stdout
sys.stdout = Discarder()

并且,为了增加可能的解决方案,这里有一个适用于Unix shell的解决方案:

# discards all input (change /dev/null to a file name to keep track of output)
python yourScript.py > /dev/null

总结

以上是编程之家为你收集整理的沉默记录器和打印到屏幕 – Python全部内容,希望文章能够帮你解决沉默记录器和打印到屏幕 – Python所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶