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

打印 上一主题 下一主题

主题 491|帖子 491|积分 1473

是这样的,之前手机备份图片到电脑,由于苹果拍照开了Live模式,所以它导出的图片有一个2秒的视频(.mov) 跟一张静态图(.jpg / .heic),静态图输出取决当时导出的选项。 现在想恢复到手机,导入发现Live图不能动了。
欸 无非就是找到两个同名的,然后移到另一个文件夹嘛,一开始还想手动移一看2000多张...
代码
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import os
  4. import shutil
  5. if __name__ == '__main__':
  6.     # 只需要修改这两个路径即可使用
  7.     path = "D:\\11_Backup\\iPhone\\20"  # 图片跟视频存放的路径
  8.     outputPath = "D:\\11_Backup\\Temp"  # 输出的路径 ,推荐在同盘下的路径
  9.     list = os.listdir(path)
  10.     jpgList = []
  11.     heicList = []
  12.     movList = []
  13.     sDict = {}
  14.     # 搜索出jpg heic mov 分别放进list保存
  15.     for item in list:
  16.         if item.endswith('.JPG') or item.endswith('.jpg'):
  17.             jpgList.append(item)
  18.         if item.endswith('.HEIC') or item.endswith('.heic'):
  19.             heicList.append(item)
  20.         if item.endswith('.MOV') or item.endswith('.mov'):
  21.             movList.append(item)
  22.     # 使用.mov匹配 含有jpg heic,匹配成功保存到sDict字典中
  23.     for i in movList:
  24.         for j in jpgList:
  25.             if i[:-4] == j[:-4]:
  26.                 sDict[i] = j
  27.                 break
  28.         for k in heicList:
  29.             if i[:-4] == k[:-5]:
  30.                 sDict[i] = k
  31.                 break
  32.     # 移动文件
  33.     for k, v in sDict.items():
  34.         shutil.move(path + "\" + k, outputPath + "\" + k)
  35.         shutil.move(path + "\" + v, outputPath + "\" + v)
复制代码
匹配好的效果


大功告成,
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

涛声依旧在

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表