python利用文件时间批量重命名照片和视频


Posted in Python onFebruary 09, 2021

本文实例为大家分享了python利用文件时间批量重命名照片和视频的具体代码,供大家参考,具体内容如下

问题描述

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

python利用文件时间批量重命名照片和视频

代码实现

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

import os
import re
import time
import exifread

def get_file_date(filepath, format):
 '''
  获取文件的时间戳,这里主要返回视频的时间,原时间一般为修改时间
  st_atime (访问时间), st_mtime (修改时间), st_ctime(创建时间)
 '''
 statinfo = os.stat(filepath)
 temp_time = time.localtime(statinfo.st_mtime)
 return str(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_time

def get_filetype(basename):
 '''
 利用正则表达式判断文件后缀,照片返回0,视频返回1,其他返回2
 '''
 img_reg=r'(\.JPG|\.jpg|\.bmp|\.png)'
 vedio_reg=r'(\.mp4|\.MP4|\.MOV)'
 
 if re.search(img_reg,basename): #匹配照片
  return 0
 elif re.search(vedio_reg,basename): #匹配视频
  return 1
 else:
  return 2

if __name__ == "__main__":
 dirname = r'D:\ProgramData\Python'
 os.chdir(dirname) # 切换至当前目录
 basenames = os.listdir(dirname)
 format = '%Y%m%d_%H%M%S' # 时间格式

 for basename in basenames:
  filepath = dirname+'\\'+basename
  num=get_filetype(basename)

  if num==0:
   str_time=get_exif_date(filepath) #处理照片
   newname=str_time+os.path.splitext(basename)[1]
   os.rename(basename,newname)
   print(basename+'---照片修改成功!')   
  elif num==1:
   str_time=str(get_file_date(filepath, format)) #处理视频
   newname=str_time+os.path.splitext(basename)[1]
   os.rename(basename,newname)
   print(basename+'---视频修改成功!')
  else:
   print(basename+"---文件格式不正确!")

结论

最后修改结果如下。

python利用文件时间批量重命名照片和视频

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python海龟绘图实例教程
Jul 24 Python
理解Python垃圾回收机制
Feb 12 Python
python学习教程之Numpy和Pandas的使用
Sep 11 Python
详解python上传文件和字符到PHP服务器
Nov 24 Python
python监控进程脚本
Apr 12 Python
python实现多线程网页下载器
Apr 15 Python
python进行TCP端口扫描的实现
Dec 21 Python
python接口自动化(十六)--参数关联接口后传(详解)
Apr 16 Python
python matplotlib库绘制条形图练习题
Aug 10 Python
django实现HttpResponse返回json数据为中文
Mar 27 Python
Django基于Models定制Admin后台实现过程解析
Nov 11 Python
Python控制台输出俄罗斯方块的方法实例
Apr 17 Python
python opencv实现图像配准与比较
Feb 09 #Python
python urllib和urllib3知识点总结
Feb 08 #Python
Python3.9.1中使用match方法详解
Feb 08 #Python
python读取excel数据并且画图的实现示例
Feb 08 #Python
Python爬取某平台短视频的方法
Feb 08 #Python
利用Python批量识别电子账单数据的方法
Feb 08 #Python
Python命令行参数argv和argparse该如何使用
Feb 08 #Python
You might like
融入意大利的咖啡文化
2021/03/03 咖啡文化
用PHP将数据导入到Foxmail的实现代码
2010/09/05 PHP
php获取域名的google收录示例
2014/03/24 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
jquery的相对父元素和相对文档定位示例代码
2013/08/02 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
2018/06/22 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
2019/08/14 Javascript
vue实现鼠标经过动画
2019/10/16 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
Python中的连接符(+、+=)示例详解
2017/01/13 Python
Python利用递归和walk()遍历目录文件的方法示例
2017/07/14 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
详解移动端h5页面根据屏幕适配的四种方案
2020/04/15 HTML / CSS
百丽国际旗下购物网站:优购
2017/02/28 全球购物
如何处理简单的PHP错误
2015/10/14 面试题
献爱心标语
2014/06/21 职场文书
目标责任书格式
2014/07/28 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
个人汇报材料范文
2014/12/30 职场文书