python实现读取本地图片修改名称并重新保存

1 实现功能

  1. Excel文件打开和读取指定单元格
  2. 图片文件名称获取及修改
  3. 修改后图片的重新保存
  4. 对无用图片进行删除

2 具体代码

import xlrd
import os
from datetime import datetime
from xlrd import xldate_as_tuple

ROOT_DIR = os.path.abspath("../")
img_path = os.path.join(ROOT_DIR, "D://图片集")  # 图片文件路径
imglist = os.listdir(img_path)
# print(filelist)

excel_path = os.path.join(os.getcwd(), 'D://图片集//合并表.xlsx')  # Excel文件路径
print('Excel文件路径:' + excel_path)
excel_file = xlrd.open_workbook(excel_path)  # 打开文件
table = excel_file.sheets()[0]  # 通过索引打开
print('已经打开的工作簿的名字:' + table.name)
print('开始读取Excel单元格的内容')

i = 0
for img in imglist:
    i += 1
    if img.endswith('.jpg'):
        print(i)
        src = os.path.join(os.path.abspath(img_path), img)  # 原先的图片名字
        # print(src[23:-4])
        key = 0  # 标识是否需要移除图片
        for j in range(table.nrows):
            cell_value = table.cell(j, 9).value  # 获取单元格内容
            print(cell_value)
            if src[23:-4] == cell_value:  # 截取原图片所需名称和Excel文件名称进行比较
                dst = os.path.join(os.path.abspath(img_path), table.cell(j, 3).value + '.jpg')  # 根据自己的需要重新命名,可以把第二个参数改成自己所需的名称
                # print(table.cell(j+1, 3).value)
                # print(src)
                # print(dst)
                os.rename(src, dst)  # 重命名,并且覆盖原先图片名称
                key = 1
                break
        if key == 0:
            os.remove(src)  # 对无用图片进行删除

3 个人总结

程序为临时使用,代码功能参数还未完善,仅供参考。

你可能感兴趣的:(python,python)