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压缩和解压缩zip文件
Feb 14 Python
Python使用os模块和fileinput模块来操作文件目录
Jan 19 Python
python实现决策树、随机森林的简单原理
Mar 26 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
Apr 28 Python
python绘制评估优化算法性能的测试函数
Jun 25 Python
python+numpy实现的基本矩阵操作示例
Jul 19 Python
python+openCV调用摄像头拍摄和处理图片的实现
Aug 06 Python
python socket通信编程实现文件上传代码实例
Dec 14 Python
python 操作hive pyhs2方式
Dec 21 Python
python输出pdf文档的实例
Feb 13 Python
如何使用pandas读取txt文件中指定的列(有无标题)
Mar 05 Python
python 实现汉诺塔游戏
Nov 28 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
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
2013/01/16 Javascript
javascript获取url上某个参数的方法
2013/11/08 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
Bootstrap Scrollspy源码学习
2017/03/02 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
Angularjs实现数组随机排序的方法
2018/10/02 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
vue实现放大镜效果
2020/09/17 Javascript
Python中的迭代器与生成器高级用法解析
2016/06/28 Python
Python3多线程操作简单示例
2018/05/22 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
Python数据可视化:箱线图多种库画法
2019/11/06 Python
Python字典dict常用方法函数实例
2020/11/09 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
中国制造网:Made-in-China.com
2019/10/25 全球购物
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
培训主管的岗位职责
2013/11/23 职场文书
财务会计岗位职责
2015/02/03 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
springcloud之Feign超时问题的解决
2021/06/24 Java/Android
手把手教你导入Go语言第三方库
2021/08/04 Golang