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之通过Python连接数据库
Oct 28 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
python实现二叉查找树实例代码
Feb 08 Python
使用Django启动命令行及执行脚本的方法
May 29 Python
Python实现的NN神经网络算法完整示例
Jun 19 Python
Python实现高斯函数的三维显示方法
Dec 29 Python
Python 实现try重新执行
Dec 21 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
Jan 10 Python
Python猴子补丁Monkey Patch用法实例解析
Mar 23 Python
Selenium基于PIL实现拼接滚动截图
Apr 10 Python
Matlab求解数组中的最大值及它所在的具体位置
Apr 16 Python
Python的三个重要函数详解
Jan 18 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中如何调用webservice的实例参考
2013/04/25 PHP
浅析php变量作用域的一些问题
2013/08/08 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
js实现网站首页图片滚动显示
2013/02/04 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
2017/05/08 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
Python 自动补全(vim)
2014/11/30 Python
Python中统计函数运行耗时的方法
2015/05/05 Python
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
python和bash统计CPU利用率的方法
2015/07/10 Python
Python自动生产表情包
2017/03/17 Python
python 全局变量的import机制介绍
2017/09/07 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
python实现Flappy Bird源码
2018/12/24 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
Python pymysql模块安装并操作过程解析
2020/10/13 Python
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
护理自荐信范文
2013/10/05 职场文书
写给妈妈的道歉信
2014/01/11 职场文书
培训主管的职业生涯规划
2014/03/06 职场文书
竞聘演讲稿
2014/04/24 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
团代会开幕词
2015/01/28 职场文书
Pytorch 如何实现常用正则化
2021/05/27 Python
pandas中DataFrame数据合并连接(merge、join、concat)
2021/05/30 Python