python3 ogr AttributeError: 'NoneType' object has no attribute 'GetLayer'

在使用osgeo.ogr的时候,发现ds.GetLayer(0)报错:
AttributeError: ‘NoneType’ object has no attribute ‘GetLayer’
原因是fn路径有问题.

原代码:

from osgeo import ogr
fn = 'E:\meichuan_prec_station.shp'
ds = ogr.Open(fn,False)
layer = ds.GetLayer(0)

报错信息如下:

Traceback (most recent call last):

  File "<ipython-input-2-08750655ab67>", line 4, in <module>
    layer = ds.GetLayer(0)

AttributeError: 'NoneType' object has no attribute 'GetLayer'

原因排除了gdal版本和python版本的问题,事实上,在可以完成osgeo的调用后,就说明不是python版本和gdal包之间冲突的问题,因为如果在装错gdal版本的情况下,import osgeo的时候,会提示python无法找到适应python版本的gdal.

AttributeError: ‘NoneType’ object has no attribute ‘GetLayer’

根本原因是绝对路径下无法找到所声明的这个‘meichuan_prec_station.shp’
文件不存在,所以打开的是一个空的ds = ogr.Open(fn,False)
在执行这句时,layer = ds.GetLayer(0)
由于ds(DataSource)是空,所以空的ds是没有图层信息的,无法得到其图层。
在这里插入图片描述
检查修改路径后,则GetLayer成功!

from osgeo import ogr
fn = 'E:\课程PPT\Python空间数据处理\python空间数据处理-期中大作业02\梅川江地面数据\meichuan_prec_station.shp'
ds = ogr.Open(fn,False)
layer = ds.GetLayer(0)

在这里插入图片描述

摇曳在笔尖的舞姿、是聚光灯下最浓烈的一抹艳红。


版权归作者 小白是哪个小白_ 所有,转载、引用请注明链接出处。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值