การตรวจสอบไฟล์โดยใช้ ArcPy?


13

ฉันมีสคริปต์ที่สแกนไดเรคทอรีและส่งออกข้อมูลข้อมูลแรสเตอร์พื้นฐานเช่นชื่อไฟล์รูปแบบจำนวนแบนด์และอื่น ๆ ฉันต้องการวิธีในการทำเช่นนั้นหากไดเรกทอรีไม่มีข้อมูลแรสเตอร์ (เช่นอะไรอื่น ๆ กว่าข้อมูลแรสเตอร์) ข้อความจะปรากฏขึ้นเพื่อระบุว่าไดเรกทอรีไม่มีประเภทข้อมูลที่ถูกต้อง

ฉันรู้ว่า ArcPy มีDescribe()ฟังก์ชั่นที่ฉันสามารถใช้เพื่อกำหนดประเภทของข้อมูลในโฟลเดอร์ แต่ฉันไม่แน่ใจว่าจะนำไปใช้อย่างไร นี่คือสิ่งที่ฉันมี:

rasterList = arcpy.ListRasters("*", "ALL")
filesType = arcpy.DataType('RasterDataset') # Can use `DatasetType` as well. 
                                            # I've tested this function to describe
                                            # raster data and ArcPy prints out
                                            # 'RasterDataset', that is why I have it 
                                            # there in the brackets.
for name in rasterList:
    if rasterList == filesType:
        print ("\nFilename:"), name
    else:
        print ("This directory does not contain any raster data.")

ข้อเสนอแนะใด ๆ

คำตอบ:


16

วิธีการเกี่ยวกับสิ่งที่ง่ายเช่น:

if len(rasterList) == 0:
    print ("This directory does not contain any raster data.")
else:
    # Your raster processing code

len()ฟังก์ชั่นคำนวณความยาวของสตริงกลับ / รายการดังนั้นหากจะส่งกลับ0แล้วคุณจะรู้อะไรในโฟลเดอร์ที่ตรงกับเกณฑ์ที่กำหนด (ในกรณีนี้เป็นแรสเตอร์) วิธีนี้หากโฟลเดอร์มี rasters ใด ๆ (แม้ว่าไม่ใช่ทุกไฟล์ที่เป็น raster) ไฟล์เหล่านั้นจะถูกประมวลผล


ขอบคุณ nmpeterson! นั่นมัน ฉันรู้ว่าฉันขาดอะไรที่เรียบง่ายไป ไม่อยากเชื่อเลยว่าฉันไม่ได้คิดถึงlen()ฟังก์ชั่น
kaoscify
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.