Python 拦截来自第三方代码的消息
我正在编写一个Python脚本,它使用Python 拦截来自第三方代码的消息,python,stdout,messages,gdal,Python,Stdout,Messages,Gdal,我正在编写一个Python脚本,它使用GDAL中的第三方模块。发生错误时,GDAL函数不会引发异常,但会向stdout发送消息。一般来说,GDAL函数发生的错误不保证停止进程,我不需要知道发生了什么错误 在控制台中打印之前,是否有办法截获发送到标准输出的消息?GDAL消息会干扰我在自己的代码中提供的消息。如中所述,您可以使用GDAL.UseExceptions()打开异常,例如: from osgeo import gdal dsrc = gdal.Open('nonexist') # ...
GDAL
中的第三方模块。发生错误时,GDAL
函数不会引发异常,但会向stdout
发送消息。一般来说,GDAL
函数发生的错误不保证停止进程,我不需要知道发生了什么错误
在控制台中打印之前,是否有办法截获发送到标准输出的消息?GDAL
消息会干扰我在自己的代码中提供的消息。如中所述,您可以使用GDAL.UseExceptions()
打开异常,例如:
from osgeo import gdal
dsrc = gdal.Open('nonexist')
# ... silence
gdal.UseExceptions()
dsrc = gdal.Open('nonexist')
# Traceback (most recent call last):
# File "<interactive input>", line 1, in <module>
# RuntimeError: `nonexist' does not exist in the file system,
# and is not recognised as a supported dataset name.
这将打印错误消息:
`“不存在”在文件系统中不存在,
并且未被识别为受支持的数据集名称
如中所述,您可以使用gdal.UseExceptions()
打开异常,例如:
from osgeo import gdal
dsrc = gdal.Open('nonexist')
# ... silence
gdal.UseExceptions()
dsrc = gdal.Open('nonexist')
# Traceback (most recent call last):
# File "<interactive input>", line 1, in <module>
# RuntimeError: `nonexist' does not exist in the file system,
# and is not recognised as a supported dataset name.
这将打印错误消息:
`“不存在”在文件系统中不存在,
并且未被识别为受支持的数据集名称
我已经看过Python,并阅读了有关
gdal.UseExceptions()
。我不清楚的是,这将打开异常并关闭消息,还是我将获得异常和消息?基本上,它将stderr消息转换为RuntimeError异常,可以以任何您想要的方式进行处理。我已经看过Python Gotchas并阅读了gdal.UseExceptions()
。我不清楚的是,这会打开异常并关闭消息,还是我会得到异常和消息?基本上,它会将stderr消息转换为运行时错误异常,可以用任何您想要的方式来处理。