【بايثون】
عادة ، عندما نراجع ملف إنجاز البيانات ، سنواجه مثل هذه المشكلة ، " تتطلب النتيجة وضع جميع العناصر ، وإذا لم يكن هناك محتوى ، فيجب ترك الطبقة فارغة ". ولكن بالنسبة لبعض البيانات ، لا يُسمح للقواعد بأن تكون فارغة ، لذلك نحتاج إلى فتح نظام المعلومات الجغرافية والتحقق يدويًا مما إذا كانت الطبقات التي لم تكن قواعدها فارغة فارغة أم لا. إذا كانت كمية البيانات كبيرة جدًا ، فسيكون ذلك وقتًا عملية الاستهلاك.
بناءً على ذلك ، نقترح " استخدام الكود لتحديد ما إذا كان كل عنصر قيمة فارغة ، وإزالة الطبقة الفارغة لتحديد ما إذا كانت الطبقة الفارغة متوافقة " ، وبالتالي تحسين كفاءة الفحص.
فكرة كتابة الكود هي كما يلي:
-
اجتياز المجلد والمجلدات الفرعية أولاً للعثور على كل ملف shp ؛
-
ثانيًا ، قم بإنشاء المسار المطلق للملف من خلال الأمر os.path.join لكل ملف shp ، وقم بإضافته إلى القائمة المحددة ؛
-
أخيرًا ، يتم اجتياز قائمة المسار ، ويتم الحكم على كل ملف 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 في المسار لتحديد ما إذا كانت البيانات كاملة ؛
ثانيًا ، قم بإدراج مسار واسم الملف الفارغ لتحديد ما إذا كانت البيانات متوافقة.