我有一个代码,我正在成功运行,但想要转换一个if语句,使其变得光滑。我希望它能够回到代码的开头,这样如果它无法打开图像,它就可以开始读取另一个图像。以下是代码。以上所有内容都是与数据库的连接并获取第一张图像
hDataset = gdal.Open( pszFilename, gdal.GA_ReadOnly )
if hDataset is None:
print("gdalinfo failed - unable to open '%s'." % pszFilename )
return 1
答案 0 :(得分: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
答案 1 :(得分: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()
很抱歉,如果那不是您的目的。