0

我正在使用 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() 类不能按预期工作。

4

1 回答 1

0

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

于 2019-05-27T14:30:29.450 回答