Validação de arquivo usando o ArcPy?

13

Eu tenho um script que varre um diretório e gera informações básicas de dados de varredura, como nome do arquivo, formato, número de faixas e etc. Preciso de uma maneira de fazê-lo se o diretório não contiver dados de varredura (ou seja, qualquer outra coisa que dados rasterizados), uma mensagem é exibida informando que o diretório não possui o tipo de dados correto.

Eu sei que o ArcPy tem uma Describe()função que eu poderia usar para determinar o tipo de dados em uma pasta, mas não sei como implementá-los. Isto é o que eu tenho até agora:

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

Alguma sugestão?

kaoscify
fonte

Respostas:

16

Que tal algo simples como:

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

A len()função calcula o comprimento da string / lista retornada; portanto, se ela retornar 0, você não saberá nada na pasta que corresponda ao critério (nesse caso, ser uma varredura). Dessa forma, se a pasta contiver rasters (mesmo que nem todos os arquivos sejam rasterizados), eles serão processados.

nmpeterson
fonte
Obrigado nmpeterson! Foi isso. Eu sabia que estava faltando algo simples. Não posso acreditar que não pensei na len()função.
kaoscify