Я использую скрипт для изменения размера изображений в указанной папке c. Сценарий выглядит следующим образом:
def RESIZE_IMAGES_IN_FOLDER(new_images_path): #requires absolute path
os.chdir(new_images_path)
lst = [item.name for item in os.scandir(new_images_path) if item.is_file()]
for item in lst:
try:
with Image.open(item) as img:
limit = 1000 #change this according to needs
if (img.height>limit) or (img.width>limit):
print ("Now resizing image file " + item + " ...")
if img.height > img.width:
cover = resizeimage.resize_height(img, 1000)#resize_contain might be needed
else:
cover = resizeimage.resize_width(img, 1000)#resize_contain might be needed
cover.save(item, img.format)
print ("***Image file " + item + " resized successfully to " + str(cover.size) + " ***")
else:
print("---Image file " + item + " with dimensions " + str(img.size) + " did not exceed " + str(limit) + "px in any dimension.---")
except IOError as i:
print(str(i))
Дело в том, что, хотя сценарий был выполнен и я использовал блок:
with Image.open(item) as img:
, так что оператор Image.close () не было необходимости, я попытался переместить папку после этого, и получил сообщение Windows, что файлы в папке, где все еще используется другой программой. Как только я закрыл оболочку Python, с которой работал, проблема прекратилась. Это подсказка, что какой-то объект Image не был правильно закрыт? В какой момент это могло произойти?