问题描述

承接上节的问题,在安卓和苹果间互导照片和视频还容易出现文件名混乱的问题,如下图所示。

代码实现

为保证文件名的准确性,这里主要提取照片的拍摄时间和视频的修改时间用于重命名,这两个时间一般是其原始时间,实现代码如下:

import os
import re
import time
import exifreaddef get_file_date(filepath, format):'''获取文件的时间戳,这里主要返回视频的时间,原时间一般为修改时间st_atime (访问时间), st_mtime (修改时间), st_ctime(创建时间)'''statinfo = os.stat(filepath)temp_time = time.localtime(statinfo.st_mtime)return time.strftime(format, temp_time)def get_exif_date(filepath):# 获取照片的拍摄日期,利用exifread模块FIELD = 'EXIF DateTimeOriginal'fd = open(filepath, 'rb')tags = exifread.process_file(fd)fd.close()if FIELD in tags:temp_time = str(tags[FIELD])new_time = temp_time.replace(':', '').replace(' ', '_')return new_timeelse:new_time=''return new_timedef get_filetype(basename):'''利用正则表达式判断文件后缀,照片返回0,视频返回1,其他返回2'''img_reg = r'(\.JPG|\.jpg|\.bmp|\.png)'vedio_reg = r'(\.mp4|\.MP4|\.MOV|\.mov)'if re.search(img_reg, basename):  # 匹配照片return 0elif re.search(vedio_reg, basename):  # 匹配视频return 1else:return 2if __name__ == "__main__":dirname = r'D:\资料\照片\15-18'os.chdir(dirname)  # 切换至当前目录basenames = os.listdir(dirname)format = '%Y%m%d_%H%M%S'  # 时间格式for basename in basenames:filepath = dirname+'\\'+basenamenum = get_filetype(basename)  #判定文件类型# 获取文件时间if num == 0:exif_time = str(get_exif_date(filepath))  # 获取照片拍摄时间if exif_time != '':str_time = exif_timeelse:str_time = str(get_file_date(filepath, format))  # 获取文件的修改时间elif num == 1:str_time = str(get_file_date(filepath, format))else:print(basename+"---文件格式不正确!")# 重命名file_suffix=os.path.splitext(basename)[1] #后缀名try:            newname = str_time+file_suffixos.rename(basename, newname)print(basename+'---重命名成功!')except Exception as e:if e.args[0] ==17: #重名newname=str_time+'-1'+file_suffixos.rename(basename,newname)else:print(e)

结论

最后修改结果如下。

利用文件时间批量重命名照片和视频相关推荐

  1. python批量改名微信视频软件,python利用文件时间批量重命名照片和视频

    本文实例为大家分享了python利用文件时间批量重命名照片和视频的具体代码,供大家参考,具体内容如下 问题描述 承接上节的问题,在安卓和苹果间互导照片和视频还容易出现文件名混乱的问题,如下图所示. 代 ...

  2. linux下怎么批量命名文件,linux下的文件操作——批量重命名

    概述:在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等.文本主要为你讲解如何实现这些操作 1.删除所有的 .bak 后缀: renam ...

  3. 批量重命名照片为序号递增的形式

    现在手机拍照的像素已经很高了,在非专业的情况下,我们拍摄一些新媒体的文章照片都是采用手机.手机拍照又方便又轻便,还可以一键修图.但是有个问题手机拍的照片导出到电脑,名称都是系统自带的英文,而且序号有时 ...

  4. 【python应用】 文件名称批量重命名工具

    [python应用] 文件名称批量重命名工具 1.背景 2.代码 3.打包 4.使用方法 5.资源 1.背景 参考[python应用] 视频捕获及保存工具 https://blog.csdn.net/ ...

  5. Python对文件进行批量重命名

    不管是什么开发语言,用代码操作的最大优势就是可以灵活调整.可批量处理 对于要处理的文件,几千几万的量也是一个回车的事,当然前提是代码不能出BUG 有时候我们下载的一切工具要么收费,要么有各种各样的限制 ...

  6. [软件工具] 怎么样能按照表格内的对应关系为文件进行批量重命名?需要根据一个列表将文件批量重命名

    在日常生活中我们经常需要将文件名称进行批量重命名,这个很多工具都可以搞定 但是我们今天说的是一种特殊情况:怎么样能按照表格内的对应关系为文件进行批量重命名? 按照文件列表批量重命名,也就是需要根据表内 ...

  7. python文件批量重命名以数字~n的方式重命名_利用Python对文件进行批量重命名

    最近几天工作的内容是对40个项目进行考核,每个项目都需要一个考核评分表,已经有了项目的列表. 如果用常规的方法,需要复制40个文件,并逐个修改,不光工作量大,也容易出错,后期修改也不方便. 于是想到了 ...

  8. 使用bat文件实现批量重命名功能

    在生活中我们总会碰到对大量文件进行重命名操作,这时如果一个一个的,选取文件→右键→重命名→选取文件,这样操作势必会浪费大量时间. 现在小编就告诉大家一个使用bat文件(命令行)的方法,快速对文件进行重 ...

  9. Excel 批量重命名照片

    理历史照片的时候发现,用文件夹进行分类之后,还有很多照片,如果继续分类,就会导致每个文件夹照片过少,查看不便,但是如果不分类,手机原始的命名方式没有办法满足查看需求,故而,产生了对照片进行批量重命名的 ...

最新文章

  1. 图解HTTPS建立过程
  2. 客户端,服务器,天气预报
  3. What day is that day?(快速幂,打表找周期,或者求通项公式)
  4. C、C++ 学习经历
  5. Ubuntu Server 16.04.x进入中文安装界面无法安装busybox-initramfs
  6. mysql load data infile 上传数据 不显示_第22问:我有带外键的表,你有数据么?
  7. python解压bz2文件命令_解压缩bz2文件
  8. Adreno GPU上Android 游戏开发介绍 (3)
  9. CUDA+Pycharm-gpu版本+Anaconda安装
  10. 我所理解的协方差矩阵
  11. HTML5期末大作业:基于HTML+CSS+JavaScript茶文化中国水墨风格绿色茶叶销售(5页) 学生网页设计作业源码
  12. JavaScript在线手册
  13. Shifting Sort(选择排序)
  14. 职场上被人针对要不要告诉领导
  15. visio移动变得很卡的解决办法
  16. 暴笑小笑话集(全是最新经典!)
  17. Golang学习笔记之GORM基础使用(二)
  18. 微信小程序蓝牙BLE开发实战——案例(二)
  19. 一站式社区智慧路灯系统集成解决方案解析
  20. underscore入门使用说明

热门文章

  1. Stata:手动计算和图示边际效应
  2. 论文写作总结之(一) -- Abstract 写法总结
  3. Bayesian facerevisited : a joint formulation 学习笔记
  4. 毫无疑问计算机犯罪是一个很严重的问题英语,英语四级作文高分句型
  5. Spring Boot教程(十二)整合elk(1)
  6. ❤送女朋友生日快乐祝福网页制作❤(HTML+CSS+JS)
  7. oracle创建分区.md
  8. JS实现点赞变亮与取消点赞变灰样式
  9. 高性能Web服务器:Nginx
  10. 刚入门的程序员朋友需要知道的30件事