我想使用python读取文件夹中的图片,将他们打乱后并重新命名保存
时间: 2024-09-23 12:05:21 浏览: 46
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
在Python中,你可以使用`os`、`shutil`和`random`库来读取文件夹中的图片,打乱顺序后再重新命名并保存。以下是简单的步骤:
首先,安装必要的`Pillow`库来处理图片:
```bash
pip install pillow
```
接下来,编写一个Python脚本:
```python
import os
import random
from PIL import Image
# 设置原始图片目录和目标存储目录
source_folder = "path_to_your_source_folder"
destination_folder = "path_to_your_destination_folder"
# 确保目标目录存在
if not os.path.exists(destination_folder):
os.makedirs(destination_folder)
# 获取源文件夹中的所有图片文件
image_files = [f for f in os.listdir(source_folder) if os.path.isfile(os.path.join(source_folder, f)) and f.lower().endswith(('.jpg', '.jpeg', '.png'))]
# 打乱图片文件列表
random.shuffle(image_files)
# 遍历图片并按新名称保存
for i, image_file in enumerate(image_files):
# 加上序号作为新名字
new_image_name = f'image_{i+1}_{os.path.splitext(image_file)[0]}'
src_path = os.path.join(source_folder, image_file)
dst_path = os.path.join(destination_folder, new_image_name)
# 使用PIL打开图片,然后保存
with Image.open(src_path) as im:
im.save(dst_path)
print("图片已打乱并重命名保存完成")
```
将上述代码中的`source_folder`和`destination_folder`替换为你实际的图片源文件夹路径和目标文件夹路径。
注意:
1. 文件夹中的文件名可能会有冲突,这里简单地使用了序号来避免,如果有需要,可以添加更复杂的文件名生成策略。
2. 对于大型文件夹,一次性加载所有图片可能会占用大量内存,可以考虑分批处理。
阅读全文