Python_两个jpg图片文件名称互换

项目场景

处理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

小结

上述代码的局限性比较强,只是针对两张图片的互换名称,对于其他情况,需另行编写代码。

相关推荐
circuitsosk32 分钟前
NL2SQL在工业级场景下的精度优化:Schema Linking + 动态Few-shot实战
人工智能·python·sql·大模型·nl2sql
kobe_OKOK_6 小时前
DRF接口幂等操作
python·django
廿士7 小时前
python脚本使用相关
python
青 春 记 忆7 小时前
零基础入门python19:Flask账本第一步——应用工厂、蓝图和健康检查
python·flask·后端开发
朦胧之7 小时前
Python 后端核心知识
python
denggun123458 小时前
yield
前端·数据库·python
zx_741484819 小时前
【Python 入门】面向对象基础:类、对象、成员变量与构造方法
开发语言·python
招财小梗9 小时前
沈阳商贸公司AI企业服务优势几何?
大数据·人工智能·python
ZISHU_98710 小时前
用 TLabel 给 SynTouch BioTac 数据做语义标注:从原始信号到结构化标注
开发语言·人工智能·python·数据·机器人触觉
m0_6174939411 小时前
SSLError [ASN1: NOT_ENOUGH_DATA] 问题排查与解决指南
python·ssl