如图,每次运行DdDdocr就会弹出红色输出,怎么样才能去掉这些输出只保留验证码内容,百度了很久没有找到解决方法,有一个对onnxruntime降级到17.0但是我尝试了几次没有成功
你可以直接修改日志级别啊
import logging
logging.basicConfig(level=logging.WARNING)
放在代码最开头
不知道你这个问题是否已经解决, 如果还没有解决的话:问题解答:
根据问题描述和附带的截图来看,似乎输出的红色信息是由错误日志引起的。解决该问题的方法主要有两个方向:修改DdDdocr库源码和修改Python的标准输出。
方法一:修改DdDdocr库源码 要去掉DdDdocr库输出的红色信息,可以尝试修改库的源码。首先,查看DdDdocr库的源码,找到相关输出的地方。然后根据实际情况,可以尝试以下两种方法:
以下是修改源码的示例代码:
# 导入相关模块
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:
是一个示例过滤条件,根据实际情况需要进行调整来保留所需的信息。
以上提供了两个解决问题的方法,具体选择哪种方法,取决于个人的使用场景和需求。希望能对你有所帮助!如果还有其他问题,请随时询问。