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检测远程端口是否打开的方法
Mar 14 Python
python实现的简单猜数字游戏
Apr 04 Python
Python实现SMTP发送邮件详细教程
Mar 02 Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 Python
python文件操作之批量修改文件后缀名的方法
Aug 10 Python
Python单向链表和双向链表原理与用法实例详解
Aug 31 Python
python2.7和NLTK安装详细教程
Sep 19 Python
Python爬虫动态ip代理防止被封的方法
Jul 07 Python
基于pandas中expand的作用详解
Dec 17 Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 Python
Python2.6版本pip安装步骤解析
Aug 17 Python
Python实现批量自动整理文件
Mar 16 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 获取客户端的真实ip
2009/11/30 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
2013/06/01 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
使用PHP函数scandir排除特定目录
2014/06/12 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
PHP实现阿里大鱼短信验证的实例代码
2017/07/10 PHP
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
javascript获得服务器端控件的ID的实现代码
2011/12/28 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
7个有用的jQuery代码片段分享
2015/05/19 Javascript
JS之相等操作符详解
2016/09/13 Javascript
JS中数组重排序方法
2016/11/11 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
vue相关配置文件详解及多环境配置详细步骤
2020/05/19 Javascript
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
Python3访问并下载网页内容的方法
2015/07/28 Python
基于ID3决策树算法的实现(Python版)
2017/05/31 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
Python如何爬取实时变化的WebSocket数据的方法
2019/03/09 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
python logging.basicConfig不生效的原因及解决
2020/02/20 Python
jupyter notebook 多环境conda kernel配置方式
2020/04/10 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
世界领先的电子书网站:eBooks.com(在线购买小说、非小说和教科书)
2019/03/30 全球购物
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
共产党员批评与自我批评
2014/10/15 职场文书
教你用python控制安卓手机
2021/05/13 Python