把A文件夹下2类、3类、4A类、4B类、4C类、5类文件夹下的images文件中的图片的名字改为id(1、2、3……),以csv的形式输出,python代码
时间: 2024-10-13 14:03:50 浏览: 21
为了实现这个需求,你可以使用Python的os模块来遍历文件夹并操作文件名,同时结合pandas库来处理CSV输出。下面是一个简单的脚本示例:
```python
import os
import csv
def rename_files_and_write_csv(root_dir='A', output_file='output.csv'):
# 创建空列表保存文件名信息
file_info = []
# 遍历指定目录及其子目录
for root, dirs, files in os.walk(root_dir):
for filename in files:
if filename.startswith('images') and filename.endswith('.jpg'): # 只处理.jpg类型的图片文件
# 获取原始文件路径和新文件名(id)
old_path = os.path.join(root, filename)
new_filename = str(len(file_info) + 1).zfill(3) # 三位数编号
new_path = os.path.join(root, 'id_' + new_filename + '.jpg')
# 重命名文件
os.rename(old_path, new_path)
# 将文件信息添加到列表中
file_info.append([new_path, new_filename])
# 写入CSV文件
with open(output_file, 'w', newline='', encoding='utf-8') as csvfile:
fieldnames = ['New Path', 'ID']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(file_info)
# 调用函数,指定A文件夹,并设置输出CSV文件的位置
rename_files_and_write_csv()
```
在这个代码中,我们首先创建一个`file_info`列表来存储每个修改后的文件名。然后使用`os.walk`遍历指定目录下的所有图片文件。对于每个符合条件的图片,我们将旧文件名替换为新的ID格式(例如,从`images001.jpg`变为`id_001.jpg`)。然后将新的路径和ID添加到`file_info`中。最后,我们将这些信息写入CSV文件。
阅读全文