如何隐藏IPTCInfo3模块在Python终端中输出的提示信息
隐藏IPTCInfo3导出数据时的终端提示方法
这条Marker scan hit start of image data输出是IPTCInfo3扫描图片元数据时的内置提示,不属于错误信息,是库开发阶段留下的调试类打印内容,可通过以下两种方式隐藏:
方法1:临时屏蔽标准输出/标准错误(推荐,无需修改库源码)
通过上下文管理器在运行IPTCInfo3相关代码时临时把输出重定向到空设备,运行结束自动恢复正常输出,不影响其他代码的打印逻辑,兼容性最强。
import os import sys from contextlib import contextmanager from iptcinfo3 import IPTCInfo @contextmanager def suppress_stdout_stderr(): """临时屏蔽标准输出和标准错误""" with open(os.devnull, 'w') as devnull: old_stdout = sys.stdout old_stderr = sys.stderr sys.stdout = devnull sys.stderr = devnull try: yield finally: sys.stdout = old_stdout sys.stderr = old_stderr # 调用IPTCInfo3的读取、导出操作都套在上下文管理器内即可 with suppress_stdout_stderr(): info = IPTCInfo('你的目标图片路径.jpg') # 后续数据处理、导出逻辑写在这里
方法2:直接修改库源码
如果确定长期不需要该提示,也可以直接修改IPTCInfo3的源码文件:
- 找到本地Python环境的第三方库安装目录,定位到
iptcinfo3.py文件 - 全局搜索
Marker scan hit start of image data对应的print语句,直接注释或删除该行即可 - 缺点:后续升级IPTCInfo3版本后,修改会失效,需要重新操作
内容的提问来源于stack exchange,提问作者project.py
相关产品推荐
相关产品推荐

