Python匹配同名不同后缀的文件

一、前言

是这样的,之前手机备份图片到电脑,由于苹果拍照开了Live模式,所以它导出的图片有一个2秒的视频(.mov) 跟一张静态图(.jpg / .heic),静态图输出取决当时导出的选项。 现在想恢复到手机,导入发现Live图不能动了。

站在用户的角度思考问题,与客户深入沟通,找到新兴网站设计与新兴网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册网站空间、企业邮箱。业务覆盖新兴地区。

欸 无非就是找到两个同名的,然后移到另一个文件夹嘛,一开始还想手动移一看2000多张...

二、 代码

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import shutil

if __name__ == '__main__':
    # 只需要修改这两个路径即可使用
    path = "D:\\11_Backup\\iPhone\\20"  # 图片跟视频存放的路径
    outputPath = "D:\\11_Backup\\Temp"  # 输出的路径 ,推荐在同盘下的路径

    list = os.listdir(path)

    jpgList = []
    heicList = []
    movList = []
    sDict = {}

    # 搜索出jpg heic mov 分别放进list保存
    for item in list:
        if item.endswith('.JPG') or item.endswith('.jpg'):
            jpgList.append(item)

        if item.endswith('.HEIC') or item.endswith('.heic'):
            heicList.append(item)

        if item.endswith('.MOV') or item.endswith('.mov'):
            movList.append(item)

    # 使用.mov匹配 含有jpg heic,匹配成功保存到sDict字典中
    for i in movList:
        for j in jpgList:
            if i[:-4] == j[:-4]:
                sDict[i] = j
                break

        for k in heicList:
            if i[:-4] == k[:-5]:
                sDict[i] = k
                break

    # 移动文件
    for k, v in sDict.items():
        shutil.move(path + "\\" + k, outputPath + "\\" + k)
        shutil.move(path + "\\" + v, outputPath + "\\" + v)

三、效果

大功告成,????,直接导入即可。赶紧试试吧。


新闻名称:Python匹配同名不同后缀的文件
文章位置:http://scyanting.com/article/dsopcgs.html