访问量: 225 次浏览
在使用Arcpy进行数据处理的时候,有时会产生大量的空要素类。这些要素类中没有任何的要素,但是放在数据库中操作的时候又会有一些麻烦。这种时候就需要将这些数据 删除掉。因为经常会遇到这个问题,所以写了一个脚本来处理。
# -*- coding: utf-8 -*-
'''
删除数据集下面空的要素
'''
import sys, os
import arcpy
def clear_feature(feature):
'''
如果要素存在,则删除
'''
if arcpy.Exists(feature):
try:
arcpy.Delete_management(feature)
except :
print "The feature " + feature + " can not be deleted."
# sys.exit()
print('Delteed:' + feature)
def is_null_feature(infea):
'''
判断是否是空的要素
'''
rows = arcpy.SearchCursor(infea)
row = rows.next()
if row:
return False
else:
return True
def del_null_feature(infea):
if arcpy.Exists(infea):
pass
else:
return 0
if is_null_feature(infea) == True:
clear_feature(infea)
if __name__ == '__main__':
inws = sys.argv[1]
arcpy.env.workspace = inws
feas = arcpy.ListFeatureClasses()
for fea in feas:
infea = os.path.join(inws, fea)
del_null_feature(infea)