runString = {'.jpeg':
    "jpegoptim -f --strip-all '%(file)s' ; chmod 644 '%(file)s'", '.jpg':
    "jpegoptim -f --strip-all '%(file)s' ; chmod 644 '%(file)s'", '.png':
    "optipng -force -o7 '%(file)s' && advpng -z4 '%(file)s' && pngcrush -rem gAMA -rem alla -rem cHRM -rem iCCP -rem sRGB -rem time '%(file)s' '%(file)s.bak' && mv '%(file)s.bak' '%(file)s' ; chmod 644 '%(file)s'"
    }
ext = splitext(path)[1].lower()
if ext in runString:
    subprocess.Popen(runString[ext] % {'file': path}, shell=True)
How to convert an image to a specific file size?