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れた場合、フォルダー内の基準に一致するものは何もありません(この場合、ラスターである)。この方法では、フォルダーにラスターが含まれている場合(すべてのファイルがラスターでなくても)、処理されます。


nmpetersonに感謝します!それでした。私は簡単なものが欠けていることを知っていました。私はlen()機能を考えなかったとは信じられない。
kaoscify
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.