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中使用第三方库xlrd来读取Excel示例
Apr 05 Python
Django中实现点击图片链接强制直接下载的方法
May 14 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
Apr 28 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
May 30 Python
深入了解Django中间件及其方法
Jul 26 Python
使用Python制作一个打字训练小工具
Oct 01 Python
python中图像通道分离与合并实例
Jan 17 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 Python
python中加背景音乐如何操作
Jul 19 Python
Python中Selenium库使用教程详解
Jul 23 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
Oct 12 Python
python数字图像处理数据类型及颜色空间转换
Jun 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
PHP GD 图像处理组件的常用函数总结
2010/04/28 PHP
php接口和抽象类使用示例详解
2014/03/02 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
javascript 节点遍历函数
2010/03/28 Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
2011/02/12 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
js实现简单的星级选择器提交效果适用于评论等
2013/10/18 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
JavaScript中var的重要性实例分析
2019/07/09 Javascript
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
Python实现按特定格式对文件进行读写的方法示例
2017/11/30 Python
python人民币小写转大写辅助工具
2018/06/20 Python
python将视频转换为全字符视频
2019/04/26 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
基于python3监控服务器状态进行邮件报警
2019/10/19 Python
Python 下载及安装详细步骤
2019/11/04 Python
关于python中的xpath解析定位
2020/03/06 Python
tensorflow图像裁剪进行数据增强操作
2020/06/30 Python
利用python汇总统计多张Excel
2020/09/22 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
2020/10/12 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
python推导式的使用方法实例
2021/02/28 Python
计算机相关专业自荐信
2014/07/02 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
冲出亚马逊观后感
2015/06/03 职场文书
Django migrate报错的解决方案
2021/05/20 Python
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python
基于Python实现nc批量转tif格式
2022/08/14 Python