使用pyShp中的Editor()类从Shapefile中删除记录时出现问题

时间:2018-07-30 19:33:03

标签: python shapefile pyshp

我正在使用pyShp在新的shapefile中添加三个多边形。我添加了几何图形和记录(属性)。到目前为止没有问题。

稍后,我想使用Editor()类删除三个多边形之一。如果我尝试删除最后一个“ P3”,则效果很好。

当我尝试删除任何其他多边形时,出现问题。例如,如果删除第一个,则形状消失,但其属性保持不变,因此“ P2”多边形会继承它们。删除的记录是最后一条(最初链接到“ P3”)。

import shapefile
w = shapefile.Writer(shapefile.POLYGONZ)
print(w.shapeType)
w.poly(parts=[[[0,0],[5,0],[5,5],[0,5]]])
w.poly(parts=[[[10,0],[15,0],[15,10],[10,5]]])
w.poly(parts=[[[5,10],[10,10],[10,15],[5,15]]])

w.field('NAME', 'C',40)
w.record('P1')
w.record('P2')
w.record('P3')
w.save("polygons")

edit = shapefile.Editor("polygons")
edit.delete(0)
edit.save("polygonDeleted")

我知道我可以选择要保留的两个形状并将它们写入新的shapefile中,但是我想了解为什么Editor()类无法按预期工作。

1 个答案:

答案 0 :(得分:0)

最新版本的pyshp删除了Editor()类,因此不再可用。