Xác thực tệp bằng ArcPy?


13

Tôi có một tập lệnh quét thư mục và xuất thông tin dữ liệu raster cơ bản như tên tệp, định dạng, số băng tần, v.v. Tôi cần một cách để làm như vậy nếu thư mục không chứa dữ liệu raster (ví dụ: mọi thứ khác hơn dữ liệu raster), một thông báo được hiển thị cho biết thư mục không có loại dữ liệu chính xác.

Tôi biết ArcPy có một Describe()chức năng mà tôi có thể sử dụng để xác định loại dữ liệu trong một thư mục, nhưng tôi không chắc cách triển khai nó. Đây là những gì tôi có cho đến nay:

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

Bất kỳ đề xuất?

Câu trả lời:


16

Làm thế nào về một cái gì đó đơn giản như:

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

Các len()chức năng tính toán độ dài của chuỗi trở lại / danh sách, vì vậy nếu nó trả về 0sau đó bạn không biết gì trong thư mục phù hợp tiêu chuẩn (trong trường hợp này, là một raster). Bằng cách này, nếu thư mục chứa bất kỳ raster nào (ngay cả khi không phải mọi tệp đều là raster), chúng sẽ được xử lý.


Cảm ơn nmpeterson! Điều đó là vậy đó. Tôi biết tôi đang thiếu một cái gì đó đơn giản. Không thể tin rằng tôi đã không nghĩ về len()chức năng.
kaoscify
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.