Skip to content

Instantly share code, notes, and snippets.

@Nuxij
Last active August 29, 2015 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Nuxij/0799862296da74130eb0 to your computer and use it in GitHub Desktop.
Save Nuxij/0799862296da74130eb0 to your computer and use it in GitHub Desktop.
Will sort a directory of image files into subfolder by resolution
#!/usr/bin/env python
# sort.py: sorts images in to subfolders based on resolution
from PIL import Image
from os import path, mkdir
from shutil import move
from glob import glob
class ImageSorter:
imageFormats = ("jpg", "png")
directory = ""
def __init__(self, workdir="."):
self.directory = workdir
def noCaseGlob(self, pattern):
def either(c):
return '[%s%s]'%(c.lower(),c.upper()) if c.isalpha() else c
return glob(''.join(map(either,pattern)))
def searchDirectory(self):
for format in self.imageFormats:
for image in self.noCaseGlob(self.directory+"/*."+format):
im = Image.open(image)
imageSize = str(im.size[0])+"x"+str(im.size[1])
if self.checkDirectory(imageSize):
self.moveImageFile(image, imageSize)
else:
self.createDirectory(imageSize)
self.moveImageFile(image, imageSize)
def checkDirectory(self, size):
return path.exists(self.directory+"/"+size)
def createDirectory(self, size):
print("Creating "+size)
return mkdir(self.directory+"/"+size)
def moveImageFile(self, imageFile, size):
print("Moving '"+imageFile+"' -> '"+size+"'")
return move(imageFile, self.directory+"/"+size)
sorter = ImageSorter()
sorter.searchDirectory()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment