【بايثون】


صورة

عادة ، عندما نراجع ملف إنجاز البيانات ، سنواجه مثل هذه المشكلة ، " تتطلب النتيجة وضع جميع العناصر ، وإذا لم يكن هناك محتوى ، فيجب ترك الطبقة فارغة ". ولكن بالنسبة لبعض البيانات ، لا يُسمح للقواعد بأن تكون فارغة ، لذلك نحتاج إلى فتح نظام المعلومات الجغرافية والتحقق يدويًا مما إذا كانت الطبقات التي لم تكن قواعدها فارغة فارغة أم لا. إذا كانت كمية البيانات كبيرة جدًا ، فسيكون ذلك وقتًا عملية الاستهلاك.


بناءً على ذلك ، نقترح " استخدام الكود لتحديد ما إذا كان كل عنصر قيمة فارغة ، وإزالة الطبقة الفارغة لتحديد ما إذا كانت الطبقة الفارغة متوافقة " ، وبالتالي تحسين كفاءة الفحص.


فكرة كتابة الكود هي كما يلي:


  • اجتياز المجلد والمجلدات الفرعية أولاً للعثور على كل ملف shp ؛


  • ثانيًا ، قم بإنشاء المسار المطلق للملف من خلال الأمر os.path.join لكل ملف shp ، وقم بإضافته إلى القائمة المحددة ؛

  • أخيرًا ، يتم اجتياز قائمة المسار ، ويتم الحكم على كل ملف shp بأنه فارغ.

الكود المحدد هو كما يلي:

# coding:utf-8import osimport 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 في المسار لتحديد ما إذا كانت البيانات كاملة ؛

ثانيًا ، قم بإدراج مسار واسم الملف الفارغ لتحديد ما إذا كانت البيانات متوافقة.