0

正常に実行されているコードがありますが、if ステートメントを変換して滑らかにしたいと考えています。画像を開くことができなかった場合に別の画像の読み取りを開始できるように、コードの先頭に戻ることができるようにしたいと考えています。以下はコードです。私が上に持っているのは、データベースへの接続と最初の画像の取得だけです

hDataset = gdal.Open( pszFilename, gdal.GA_ReadOnly ) 

    if hDataset is  None:

        print("gdalinfo failed - unable to open '%s'." % pszFilename )

         return 1
4

2 に答える 2

0

while ループまたは for ループを使用して目的を達成する方法を見てみましょう。

たとえば、開いてみたいファイルのリストがある場合は、次のようなものが役立つ場合があります: (これは使用するコードをコピーして貼り付けるものではなく、単なる例です)

succesfully_opened_datasets=[]
list_of_files=[a,list,of,filenames]
for image_filename in list_of_files:
    dataset=gdal.open(image_filename,gdal.GA_ReadOnly)
    if not dataset:
        print ("gdalinfo failed....")
    else:
        succesfully_opened_datasets.append(dataset)
return succesfully_opened_datasets
于 2013-01-24T13:16:21.530 に答える
0

何を求めているのか完全にはわかりませんが、ジェネレーターでそのようなことを行うことができます。

def open_images(*filenames):
    for fname in filenames:
        hDataset = fdal.Open(fname, gdal.GA_ReadOnly)

        if hDataset is not None:
            yield hDataset
        else:
            print("gdalinfo failed - unable to open '%s'." % fname)

 image_loader = open_images("a.jpg", "b.jpg")

 # to get the first image that opens correctly
 image = image_loader.next()

それがあなたが得ていたものではない場合は申し訳ありません。

于 2013-01-24T13:17:30.373 に答える