Answers:
您可以在Python控制台中输入以下代码,以清除加载到QGIS中的shapefile的所有属性NULL
。从图层面板(目录)中选择图层,然后运行代码:
layer = qgis.utils.iface.activeLayer()
layer.startEditing()
for field in layer.dataProvider().attributeIndexes():
for feature in layer.getFeatures():
layer.changeAttributeValue(feature.id(), field, NULL)
layer.commitChanges()
这已在QGIS 2.8.2上进行了测试。
更新:
为了响应@Vince的评论,可以将以下代码直接复制/粘贴到Python控制台中,并将根据字段的类型(即,0
对于整数字段;NULL
对于字符串字段;以及1900-01-01
for 的时期)更改属性的值。一个日期字段):
layer = qgis.utils.iface.activeLayer()
layer.startEditing()
for field in layer.pendingFields():
if field.typeName() == 'Integer':
name_int = field.name()
for feature in layer.getFeatures():
feature[name_int] = '0'
layer.updateFeature(feature)
if field.typeName() == 'String':
name_str = field.name()
for feature in layer.getFeatures():
feature[name_str] = NULL
layer.updateFeature(feature)
if field.typeName() == 'Date':
name_dat = field.name()
for feature in layer.getFeatures():
feature[name_dat] = '1900-01-01'
layer.updateFeature(feature)
layer.commitChanges()
您可以简单地将其另存为新文件,然后在“另存为...”对话框中的“跳过属性创建”框中打勾。它完全按照它说的去做。
将有一个名为FID的数字计数器列,显然Shapefile格式需要至少一个属性?如果可以的话,请使用更好的东西,spaceiteite或geopackage。
NULL
。
使用openoffice或其他工具打开.dbf文件,然后删除数据。
您可以使用python遍历文件并删除所有文件(头文件
除外),请参见dbf python模块。
QGIS可以打开没有.dbf的形状文件。
因此,您只需删除.dbf组件并在.shp中加载,即可导入几何图形。
也许您可以使用Excel编辑* .dbf文件。
然后,您删除除geom以外的所有字段。
最后保存并退出。
在执行此操作之前,对* .shp进行存档将很有用。
在QGIS 2.8.x中,您还可以摆脱特定或所有字段。打开属性表,切换编辑模式,单击“删除列”按钮,选择所有不需要的属性,然后单击“确定”。保存修改。