尝试访问编辑器方法时出错



一旦我尝试访问对象"e"的任何方法,我就会收到错误"属性错误:实例没有属性"。 我假设当我创建对象时,我没有以正确的方式进行操作。 有谁知道为什么?

import shapefile
sf = shapefile.Reader('C:/users/name/desktop/shapefiles/Polygon')
e = shapefile.Editor(shapefile = 'desktop/shapefiles/Polygon.shp')
indexesMpart = [i for i, shape in enumerate(shapes) if len(shape.parts) > 1]
for index in indexesMpart:
    e.field('something', fieldType = 'C', size = '4')

查看该模块的代码,我可以看到(实际上为此提交了补丁)的唯一方法(实际上有一个补丁)您最终可能会得到一个没有fields属性的Editor对象是,如果第 1043 行的条件if os.path.isfile("%s.shp" % base):失败,因为它找不到.shp文件。 是否确定文件存在,并且正在使用正确的路径和文件名进行初始化?

Traceback (most recent call last):
  File "C:UserssomethingDesktoptest2testing.py", line 5, in <module>
    e = shapefile.Editor(shapefile = 'C:/Users/something/Desktop/test2/testing')
  File "C:Python27libsite-packagespyshp-1.2.0-py2.7.eggshapefile.py", line 1048, in __init__
    self.records = r.records()
  File "C:Python27libsite-packagespyshp-1.2.0-py2.7.eggshapefile.py", line 525, in records
    r = self.__record()
  File "C:Python27libsite-packagespyshp-1.2.0-py2.7.eggshapefile.py", line 490, in __record
    value = int(value)
ValueError: invalid literal for int() with base 10: '**********'

在评估错误和 shapefile.py 代码后,编辑器对象返回 ValueError 的原因是因为与 .shp 文件关联的.dbf文件中的 Null 属性。 我的 .shp 文件中每个项目的简单属性 [0,1,2,3,4,5] 满足尝试调用 records 方法的构造函数。

谢谢你的帮助,西拉斯,如果没有你的指导,就无法弄清楚这一点。

相关内容

  • 没有找到相关文章

最新更新