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

不完全确定你在问什么,但你可以用发电机做类似的事情。

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 回答
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 回答