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 16 Python
详解Python编程中包的概念与管理
Oct 16 Python
详解使用 pyenv 管理多个版本 python 环境
Oct 19 Python
Python实现正整数分解质因数操作示例
Aug 01 Python
python+pyqt5实现图片批量缩放工具
Mar 18 Python
Python实现带下标索引的遍历操作示例
May 30 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
Oct 12 Python
python语言线程标准库threading.local解读总结
Nov 10 Python
Python实现把多维数组展开成DataFrame
Nov 30 Python
Python 多线程共享变量的实现示例
Apr 17 Python
全网最全python库selenium自动化使用详细教程
Jan 12 Python
DRF使用simple JWT身份验证的实现
Jan 14 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 伪造本地文件包含漏洞的代码
2011/11/03 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
javascript中的隐式调用
2018/02/10 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
[04:28]2014DOTA2国际邀请赛 采访小兔子LGD挺进钥匙体育馆
2014/07/14 DOTA
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
Python正则表达式学习小例子
2020/03/03 Python
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
英国排名第一的冲浪店:Ann’s Cottage
2020/06/21 全球购物
初三物理教学反思
2014/01/21 职场文书
捐助贫困学生倡议书
2014/05/16 职场文书
开发房地产协议书
2014/09/14 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
党员公开承诺书2015
2015/01/21 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技