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正则匹配抓取豆瓣电影链接和评论代码分享
Dec 27 Python
python通过socket查询whois的方法
Jul 18 Python
PHP实现发送和接收JSON请求
Jun 07 Python
Python+pandas计算数据相关系数的实例
Jul 03 Python
python八皇后问题的解决方法
Sep 27 Python
python按照多个条件排序的方法
Feb 08 Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 Python
Python的垃圾回收机制详解
Aug 28 Python
python实现从wind导入数据
Dec 03 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
Apr 08 Python
pandas数据处理之绘图的实现
Jun 15 Python
Python 如何展开嵌套的序列
Aug 01 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
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
2010/06/04 PHP
解析htaccess伪静态的规则
2013/06/18 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
php ci 获取表单中多个同名input元素值的代码
2016/03/25 PHP
php监测数据是否成功插入到Mysql数据库的方法
2016/11/25 PHP
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
JS判断iframe是否加载完成的方法
2016/08/03 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
Python实现删除文件但保留指定文件
2015/06/21 Python
Python矩阵常见运算操作实例总结
2017/09/29 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
PyCharm如何导入python项目的方法
2020/02/06 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
英国旅行箱包和行李箱购物网站:Travel Luggage & Cabin Bags
2019/08/26 全球购物
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
自荐信的五个重要部分
2013/10/29 职场文书
文秘专业个人求职信
2013/12/22 职场文书
旅游文化节策划方案
2014/06/06 职场文书
资料员岗位职责
2015/02/10 职场文书
《假如》教学反思
2016/02/17 职场文书
pandas中DataFrame重置索引的几种方法
2021/05/24 Python
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
redis 存储对象的方法对比分析
2021/08/02 Redis
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL