python gdal捕获出错信息ERROR

问题描述

默认情况下,python gdal出错信息以字符串形式打印出去,返回对象None,python不能接收到出错异常。如下代码

from osgeo import gdal
# gdal.UseExceptions() #1
try:
    ds = gdal.Open('test.tif')
except Exception:
    print("error.")
print(ds)
print("finish.")

输出:

ERROR 4: test.tif: No such file or directory
None
finish.

多次运行发现ERROR 4出现的顺序不同,估计是多线程等的缘故。另见

解决方案

例1

去掉#1处代码的注释,则可以让程序正常抛出异常。输出如下:

error.
Traceback (most recent call last):
File “E:/Code/PycharmProjects/python_demo/test/vi1.py”, line 8, in
print(ds)
NameError: name ‘ds’ is not defined

例2

如下代码输出:

from osgeo import gdal
gdal.UseExceptions() #1
ds = gdal.Open('test.tif')

Traceback (most recent call last):
File “E:/Code/PycharmProjects/python_demo/test/vi1.py”, line 3, in
ds = gdal.Open(‘test.tif’)
File “D:\Anaconda3\lib\site-packages\osgeo\gdal.py”, line 2914, in Open
return _gdal.Open(*args)
RuntimeError: test.tif: No such file or directory

参考:http://pcjericks.github.io/py-gdalogr-cookbook/gdal_general.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值