在所有子目录中循环&;python中的内容

在所有子目录中循环&;python中的内容,python,python-3.x,loops,compression,python-imaging-library,Python,Python 3.x,Loops,Compression,Python Imaging Library,我需要遍历所有当前/输入目录,打开所有具有验证扩展名的图像,并减小它们的文件大小,我知道可以使用python pillow库来完成: for image in imgs: img = Image.open(image) image.save(image,quality=0,optimize=True) 我已经用glob和os,os.path解决了这个问题 下面的脚本将读取您当前的目录路径,并在其子目录中循环,打开所有经过验证的图像,然后将其文件大小减小到原始文件大小的50%左右:

我需要遍历所有当前/输入目录,打开所有具有验证扩展名的图像,并减小它们的文件大小,我知道可以使用python pillow库来完成:

for image in imgs:
   img = Image.open(image)
   image.save(image,quality=0,optimize=True) 

我已经用glob和os,os.path解决了这个问题

下面的脚本将读取您当前的目录路径,并在其子目录中循环,打开所有经过验证的图像,然后将其文件大小减小到原始文件大小的50%左右:

import glob
import Image
import os, os.path

img_gallery_path = raw_input("Enter image gallery directory path like image/user:  ")

imgs = []
path = img_gallery_path
valid_images = [".jpg",".gif",".png",".jpeg"]

for f in os.listdir(path):
    ext = os.path.splitext(f)[1]
    name = os.path.splitext(f)[0]
    if ext.lower() not in valid_images:
        continue
    img=Image.open(os.path.join(path,f))
    img.save(img_gallery_path+name+ext.lower(),quality=0,optimize=True) 

希望能节省别人的时间。

啊!在我看来,用低质量的版本覆盖我所有珍贵的照片不是一个好主意。而且,如果这真的是你的目标,你可以做得更简单,用ImageMagick指定一个不同的输出目录,如下所示
mogrify-quality 0-path lowquality*png*jpg
@MarkSetchell它适用于你想要修复另一个人代码的情况,你可以查看所有以原始大小存储的图像。不过我同意你降低质量的意见。