【Python】
通常,我们在审查数据成果文件时会遇到这样一个问题,“成果要求放置全要素,如果无内容必须放空层”。但对于部分数据,规则是不允许为空的,这样一来,我们就需要打开GIS手动检查规则不为空的图层是否为空值,如果数据量过大的话,将是一个非常耗时的过程。
基于此,我们提出“通过代码来判定各要素是否为空值,并将空层挪列出来,从而判定空层是否合规”,从而提高检查效率。
代码编写思路如下:
-
首先遍历文件夹及子文件夹,找到每个shp文件;
-
其次对每个shp文件通过os.path.join命令生成文件绝对路径,并将其添加至指定列表;
-
最后遍历该路径列表,对每个shp文件进行为空判断。
具体代码如下:
# coding:utf-8
import os
import arcpy
shpfile = []
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文件,判断数据是否齐全;
其次,列出空文件的路径及名称,判断数据是否合规。
文章评论