Python exe 程序放到文件夹,子文件夹,运行程序,把照片jpg格式,把图片自动压缩500kb后,删除原始图片,小于500kb照片自动跳过
时间: 2024-03-23 12:41:16 浏览: 85
递归文件夹下含子文件夹所有图片缩小宽度到1000以缩小文件大小(替换方式不保留原图).exe
可以使用递归函数来遍历包含子文件夹的文件夹。以下是一个实现这个功能的示例代码:
```python
from PIL import Image
import os
# 要处理的文件夹和压缩后的大小
folder_path = "your_folder_path"
compress_size = 500 # 单位为KB
def compress_images(folder_path):
for file_name in os.listdir(folder_path):
file_path = os.path.join(folder_path, file_name)
if os.path.isfile(file_path) and file_name.endswith(".jpg"):
with Image.open(file_path) as img:
# 获取图片大小并计算压缩后的大小
size = os.path.getsize(file_path)
compress_ratio = compress_size * 1024 / size
if compress_ratio < 1:
# 压缩图片并保存
new_size = (int(img.size[0] * compress_ratio), int(img.size[1] * compress_ratio))
img.thumbnail(new_size, Image.ANTIALIAS)
img.save(file_path, quality=95)
else:
print(f"{file_name} skipped")
# 删除原始图片
os.remove(file_path)
elif os.path.isdir(file_path):
compress_images(file_path)
compress_images(folder_path)
```
这个代码会递归遍历包含子文件夹的文件夹,并对所有jpg格式的图片进行压缩和删除操作。注意,同样需要备份好需要处理的图片。
阅读全文