用python写一个能根据包含图片名称和类别的csv文件将图片复制到对应文件夹而不是移动的程序
时间: 2024-11-18 22:16:07 浏览: 1
编写一个Python程序来根据CSV文件中的图片名称和类别将图片复制而非移动到对应文件夹,你可以采用以下步骤:
首先,导入必要的库:
```python
import os
import csv
from shutil import copy2
```
接着,定义一个函数来处理文件操作:
```python
def copy_images_to_folders(csv_file_path, images_folder, output_folders):
# 读取CSV文件
with open(csv_file_path, newline='') as csvfile:
reader = csv.DictReader(csvfile)
# 创建输出文件夹,如果不存在的话
for folder_name in output_folders.values():
if not os.path.exists(folder_name):
os.makedirs(folder_name)
# 遍历CSV中的每一行(假设列名为'image_path'和'label')
for row in reader:
image_path = row['image_path']
label = row['label']
# 获取输出文件夹路径
folder_path = os.path.join(images_folder, output_folders[label])
# 使用copy2函数复制图片到对应文件夹
copy2(os.path.join(images_folder, image_path), folder_path)
# CSV文件中图片路径和类别的映射字典
output_folders = {'category1': 'category1_folder', 'category2': 'category2_folder', ...}
# 调用函数,传入CSV文件路径和图片文件夹路径
copy_images_to_folders('your_csv_file.csv', 'path_to_your_image_directory', output_folders)
```
在这个示例中,`copy2()`函数用于复制文件,不会改变原文件的位置。请替换`'your_csv_file.csv'`和`'path_to_your_image_directory'`为实际的CSV文件路径和图片存储目录。
阅读全文