如何去掉Python库DdDdocr输出的红色信息

如图,每次运行DdDdocr就会弹出红色输出,怎么样才能去掉这些输出只保留验证码内容,百度了很久没有找到解决方法,有一个对onnxruntime降级到17.0但是我尝试了几次没有成功

img

你可以直接修改日志级别啊

import logging

设置日志级别为WARNING

logging.basicConfig(level=logging.WARNING)

放在代码最开头

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:python ddddocr识别图片
  • 以下回答由chatgpt基于相关博客总结生成:

    问题解答:

    根据问题描述和附带的截图来看,似乎输出的红色信息是由错误日志引起的。解决该问题的方法主要有两个方向:修改DdDdocr库源码和修改Python的标准输出。

    方法一:修改DdDdocr库源码 要去掉DdDdocr库输出的红色信息,可以尝试修改库的源码。首先,查看DdDdocr库的源码,找到相关输出的地方。然后根据实际情况,可以尝试以下两种方法:

    1. 尝试将相关输出的代码注释掉或者删除掉。
    2. 尝试将输出的颜色设置为其他颜色,比如黑色。

    以下是修改源码的示例代码:

    # 导入相关模块
    import sys
    
    # 将输出的颜色设置为黑色
    sys.stderr.write('\033[30m')
    
    # 运行DdDdocr库的代码
    # ...
    
    # 将输出的颜色设置回默认颜色
    sys.stderr.write('\033[0m')
    

    方法二:修改Python的标准输出 如果无法修改DdDdocr库的源码,可以尝试修改Python的标准输出,将错误输出重定向到其他地方,例如将红色错误信息写入到日志文件中,只保留验证码内容输出。

    以下是修改标准输出的示例代码:

    # 导入相关模块
    import sys
    
    # 定义一个自定义的输出流类,重写write方法
    class MyStream:
        def __init__(self):
            self.data = ''
    
        def write(self, text):
            # 根据实际情况,可以在此过滤红色错误信息,只保留验证码内容
            if '验证码' in text:
                self.data += text
    
        def flush(self):
            pass
    
    # 创建自定义输出流对象
    my_stream = MyStream()
    
    # 替换标准错误输出流
    sys.stderr = my_stream
    
    # 运行DdDdocr库的代码
    # ...
    
    # 使用自定义输出流的数据(验证码内容)
    print(my_stream.data)
    

    需要注意的是,上述代码中 if '验证码' in text: 是一个示例过滤条件,根据实际情况需要进行调整来保留所需的信息。

    以上提供了两个解决问题的方法,具体选择哪种方法,取决于个人的使用场景和需求。希望能对你有所帮助!如果还有其他问题,请随时询问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^