项目场景
处理Adobe Photoshop导出的两个切片的顺序错误问题
小编在进行图片切片处理的时候,发现用PS导出的切片顺序错误,例如用PS导出的切片分别为test_01.jpg,test_02.jpg,但实际的使用需求是将两个图片的顺序调换,调换后名称无所谓,重点是顺序要对,如下图所示:
环境需求
- python 3.x+
程序代码
swap_names.py
创建swap_names.py,将下面的代码复制到swap_names.py中,保存。
import os def swap_names(directory='.'): # 遍历指定目录下的所有文件 for filename in os.listdir(directory): # 检查文件是否是jpg图片 if filename.lower().endswith('.jpg'): # 分离文件名和扩展名 base, ext = os.path.splitext(filename) # 检查文件名是否以'01'或'02'结尾 if base.endswith('01'):print (base)# 构造新的文件名,将'01'替换为'02' new_filename = 'Anew'+base[:-2] + '02' + ext
# print (new_filename)# 检查新文件名是否已存在,以避免覆盖 if new_filename not in os.listdir(directory): os.rename(os.path.join(directory, filename),os.path.join(directory, new_filename)) print(f"Renamed1 '{filename}' to '{new_filename}'") elif base.endswith('02'): # 构造新的文件名,将'02'替换为'01' new_filename2 = 'Anew'+base[:-2] + '01' + ext print (new_filename2)# 检查新文件名是否已存在 if new_filename2 not in os.listdir(directory): os.rename(os.path.join(directory, filename), os.path.join(directory, new_filename2)) print(f"Renamed2 '{filename}' to '{new_filename2}'") if __name__ == "__main__": #调用函数,默认处理当前目录 swap_names()print ("Done!")
操作步骤
将上述创建的文件复制到和图片的文件下
然后在弹出的窗口内输入,点击Enter:
python swap_names.py
小结
上述代码的局限性比较强,只是针对两张图片的互换名称,对于其他情况,需另行编写代码。