Validasi file menggunakan ArcPy?


13

Saya memiliki skrip yang memindai direktori dan mengeluarkan informasi data raster dasar seperti nama file, format, jumlah band, dan lain-lain. Saya perlu cara untuk membuatnya jadi jika direktori tidak berisi data raster (yaitu, apa pun lainnya daripada data raster), sebuah pesan ditampilkan yang menyatakan bahwa direktori tidak memiliki tipe data yang benar.

Saya tahu ArcPy memiliki Describe()fungsi yang bisa saya gunakan untuk menentukan tipe data dalam folder, tetapi saya tidak yakin bagaimana cara mengimplementasikannya. Inilah yang saya miliki sejauh ini:

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.")

Ada saran?

Jawaban:


16

Bagaimana dengan sesuatu yang sederhana seperti:

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

Itu len() Fungsi menghitung panjang string / daftar kembali, jadi jika ia mengembalikan 0maka Anda tahu apa-apa dalam folder cocok kriteria (dalam hal ini, menjadi raster a). Dengan cara ini, jika folder tersebut berisi raster (bahkan jika tidak semua file raster) mereka akan diproses.


Terima kasih nmpeterson! Itu dia. Saya tahu saya kehilangan sesuatu yang sederhana. Tidak percaya saya tidak memikirkan len()fungsinya.
kaoscify
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.