"""Example usage: python organize.py <input_folder> <output_folder>input_folder - the folder with images to organizeoutput_folder - the output folder to put the organized imagesRequirements: requests (http://docs.python-requests.org/en/master/)"""importosimportsysimportshutilimportrequeststry:input_folder=sys.argv[1]exceptIndexError:print('No input folder has been provided')sys.exit(0)try:output_folder=sys.argv[2]exceptIndexError:print('No output folder has been provided')sys.exit(0)ifnotos.path.exists(output_folder):os.makedirs(output_folder)endpoint='https://api.imagga.com/v1'api_key='acc_d24c845d460bc9e'api_secret='12ea701b5a10922224589ea50e8da667'defupload_image(image_path):withopen(image_path,'r')asimage_file:filename=image_file.namecontent_response=requests.post('%s/content'%endpoint,auth=(api_key,api_secret),files={filename:image_file})uploaded_files=content_response.json()['uploaded']content_id=uploaded_files[0]['id']returncontent_iddefprocess_image(content_id,api_path):query={'content':content_id}response=requests.get('%s/%s'%(endpoint,api_path),auth=(api_key,api_secret),params=query)returnresponse.json()images=filter(lambdax:x.endswith('jpg'),map(lambdax:os.path.join(input_folder,x),os.listdir(input_folder)))forimageinimages:content_id=upload_image(image)tagging_result=process_image(content_id,'tagging')categorization_result=process_image(content_id,'categorizations/personal_photos')try:image_category=categorization_result['results'][0]['categories'][0]['name']exceptKeyError,IndexError:continuetry:image_tag=tagging_result['results'][0]['tags'][0]['tag']exceptKeyError,IndexError:continuecategory_path=os.path.join(output_folder,image_category)tag_path=os.path.join(category_path,image_tag)ifnotos.path.exists(tag_path):os.makedirs(tag_path)shutil.copyfile(image,os.path.join(tag_path,os.path.basename(image)))
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.