【Python】
通常,我们在审查数据成果文件时会遇到这样一个问题,“成果要求放置全要素,如果无内容必须放空层”。但对于部分数据,规则是不允许为空的,这样一来,我们就需要打开GIS手动检查规则不为空的图层是否为空值,如果数据量过大的话,将是一个非常耗时的过程。
基于此,我们提出“通过代码来判定各要素是否为空值,并将空层挪列出来,从而判定空层是否合规”,从而提高检查效率。
代码编写思路如下:
-
首先遍历文件夹及子文件夹,找到每个shp文件;
-
其次对每个shp文件通过os.path.join命令生成文件绝对路径,并将其添加至指定列表;
-
最后遍历该路径列表,对每个shp文件进行为空判断。
具体代码如下:
# coding:utf-8import osimport arcpyshpfile = []directory = r"C:\Users\dell\Desktop\test"print ("路径内shp文件:")for root,dirs,files in os.walk(directory):for file in files:if file.endswith(".shp"):print (file)pth = os.path.join(root, file)shpfile.append(pth)print ("--------------------------------\n" + "其中空文件有:")for filek in shpfile:if arcpy.management.GetCount(filek)[0] == "0":print (filek)
检查结果如下:

首先,列出路径内的全部shp文件,判断数据是否齐全;
其次,列出空文件的路径及名称,判断数据是否合规。
文章评论