# Bibliography/Sourced Scripts List # def get_field was sourced from: http://stackoverflow.com/questions/4764932/in-python-how-do-i-read-the-exif-data-for-an-image # imgur api script was sourced from: http://stackoverflow.com/questions/16244183/uploading-a-file-to-imgur-via-python def Working_Directory_jpeglist(): import os import PIL import glob global path path = raw_input('Please Enter Image Source Path: ') # C:\Users\thepa\Desktop\FinalProjectImages\ os.chdir(path) global filelist filelist = glob.glob('*.jpg') def CreateEXIFDictionary(): import PIL import glob import os,sys from PIL import Image from PIL.ExifTags import TAGS EXIFDataList = ['DateTimeOriginal', 'ISOSpeedRatings', 'ExposureTime', 'FNumber', 'FocalLengthIn35mmFilm'] def get_field (exif,field) : for (k,v) in exif.iteritems(): if TAGS.get(k) == field: return v global imagedict imagedict = {} for image in filelist: imagedict[image] = {} datalist = [] for data in EXIFDataList: currentimage = Image.open(image) exif = currentimage._getexif() currentdata = get_field(exif, data) datalist.append(currentdata) imagedict[image] = dict(zip(EXIFDataList, datalist)) def DateReformat(): for i in filelist: tempdate = imagedict[i]['DateTimeOriginal'] tempdateformat = tempdate[0:9].replace(':', '-') imagedict[i]['DateTimeOriginal'] = tempdateformat + tempdate[-9:] DateReformat() def RenameFile(): import os from dateutil.parser import parse global UpdatedFileList UpdatedFileList = [] for i in filelist: dateinfo = imagedict[i]['DateTimeOriginal'] result = parse(dateinfo) jpg = '.jpg' renamedate = '_%s.%s.%s' % (str(result.month), str(result.day), str(result.year)) renamesplit = i.split(jpg) renamestring = ('%s' + renamedate + jpg) % (renamesplit[0]) UpdatedFileList.append(renamestring) print renamestring os.rename(i, renamestring) for image in range(len(filelist)): old = filelist[image] new = UpdatedFileList[image] imagedict[new] = imagedict.pop(old) def UpdateCSVFile(): import csv import itertools import sys with open('ImageProcessing.csv', 'wb') as csvfile: Headerlist = ['FileName', 'DateTimeOriginal', 'ISOSpeedRatings', 'ExposureTime', 'FNumber', 'FocalLengthIn35mmFilm'] writer = csv.DictWriter(csvfile, fieldnames=Headerlist) writer.writeheader() for key, val in sorted(imagedict.items()): row = {'FileName': key} row.update(val) writer.writerow(row) def ImgurUpload(): import base64 import json import requests from base64 import b64encode client_id = '56abb2bb28b78d8' headers = {"Authorization": "Client-ID my-client-id"} api_key = '2cbfac6c839cfee3beacb54a71670d11f49d417c' url = "http://api.imgur.com/3/upload.json" for file in filelist: j1 = requests.post( url, headers = headers, data = { 'key': api_key, 'image': b64encode(open(file, 'rb').read()), 'type': 'base64', 'name': file, 'title': file } ) # print data['link'], data['id'], data['deletehash'] def MoveProcessedImages(): import glob import os import shutil # C:\Users\thepa\Desktop\ProcessedImages\ newpath = raw_input('Please Enter Processed File Destination Path: ') shutil.move(path, newpath) # filelist = glob.glob('*.jpg') # for file in filelist: # os.remove(file) os.chdir(newpath) os.rename() print 'Image Processing Complete!' # C:\Users\thepa\Desktop\FinalProjectImages\ Working_Directory_jpeglist() CreateEXIFDictionary() RenameFile() UpdateCSVFile() ImgurUpload() MoveProcessedImages() # C:\Users\thepa\Desktop\ProcessedImages\
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question