Я пытаюсь найти способ загрузки изображений в отдельные папки для каждого элемента и задать имя папки на основе поля элемента.
Я нашел решение для динамических папок, и оно отлично работает здесь:
Как загрузить скрап-изображения в динамическую папку? 1
Решение предоставлено midodesign
def item_completed(self, results, item, info):
for result in [x for ok, x in results if ok]:
path = result['path']
slug = slugify(item['designer'])
settings = get_project_settings()
storage = settings.get('IMAGES_STORE')
target_path = os.path.join(storage, slug, os.path.basename(path))
path = os.path.join(storage, path)
# If path doesn't exist, it will be created
if not os.path.exists(os.path.join(storage, slug)):
os.makedirs(os.path.join(storage, slug))
shutil.move(path, target_path)
if self.IMAGES_RESULT_FIELD in item.fields:
item[self.IMAGES_RESULT_FIELD] = [x for ok, x in results if ok]
return item
Я также нашел код для обрезки загруженных изображений здесь
def item_completed(self, results, item, info):
image_paths = [x['path'] for ok, x in results if ok]
if not image_paths:
raise DropItem("Item contains no images")
if item['refer'] == 'someurl.com' :
for a in image_paths:
o_img = os.path.join(self.store.basedir,a)
if os.path.isfile(o_img):
image = Image.open(o_img)
x,y = image.size
if(y>120):
image = image.crop((0,0,x,y-35))
image.save(o_img,'JPEG');
return item
Проблема, которую я имею, состоит в том, чтобы смешать два примера в одну функцию, которая сохраняет изображения в динамически создаваемые папки, а затем обрезает изображения внутри этой папки.
Я пробовал несколько решений, но не могу заставить их работать вместе.
Спасибо!