Я новичок в программировании на python и настроил программу, которая использует API Google Drive для загрузки 20 самых последних изображений, которые были сохранены на диске.По большей части все работало нормально (учетные данные работают, загружается работа), но время от времени я сталкиваюсь с файлом, пытающимся загрузить, и Google выдает ошибку 500 или 503.Когда выдается эта ошибка, программа выводит ошибку на экран и затем завершает работу.Я пытаюсь заставить его напечатать ошибку, но затем перехожу к следующему файлу.
Поскольку я получаю ошибку только время от времени (программное обеспечение запускается один раз в день), мне сложно тестировать какие-либо решения, потому что я не могу повторить проблему всякий раз, когда я тестирую.
Код загрузки файла приведен ниже:
def downloadImage(fh, request, filename):
print(filename)
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
status, done = downloader.next_chunk()
#print("Download %d%%." % int(status.progress() * 100))
try:
with Image.open(folder + filename) as image:
orientation = 274
exif = image._getexif()
if exif:
exif = dict(exif.items())
#print(exif)
if exif[orientation] == 1:
print("EXIF says it's horizontal. Sending to build... >")
buildHorizontal(folder + filename)
else:
resize_and_crop(folder + filename, folder + filename, (1920,1080), 'middle')
except Exception as e:
print("excptn:"+str(e))
with Image.open(folder + filename) as image:
w, h = image.size
print( str(w) + " || " + str(h) )
if int(h) < int(w) :
print("It's a horizontal image. Sending to build... >")
buildHorizontal(folder + filename)
Я думаю, что могу решить проблему, добавив try:
в блок кода while done is False
, но я не уверен, как пропуститьфайл, если на самом деле выдается ошибка.