项目场景
处理Adobe Photoshop导出的两个切片的顺序错误问题
小编在进行图片切片处理的时候,发现用PS导出的切片顺序错误,例如用PS导出的切片分别为test_01.jpg,test_02.jpg,但实际的使用需求是将两个图片的顺序调换,调换后名称无所谓,重点是顺序要对,如下图所示:
环境需求
- python 3.x+
程序代码
swap_names.py
创建swap_names.py,将下面的代码复制到swap_names.py中,保存。
python
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:
dos
python swap_names.py
小结
上述代码的局限性比较强,只是针对两张图片的互换名称,对于其他情况,需另行编写代码。