本文实例为大家分享了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利用文件时间批量重命名照片和视频相关推荐

  1. 利用文件时间批量重命名照片和视频

    问题描述 承接上节的问题,在安卓和苹果间互导照片和视频还容易出现文件名混乱的问题,如下图所示. 代码实现 为保证文件名的准确性,这里主要提取照片的拍摄时间和视频的修改时间用于重命名,这两个时间一般是其 ...

  2. python重命名文件pycharm_Python中批量修改变量名太费劲?Pycharm中使用重命名一次搞定...

    标签:rename   current   变量   阅读   tor   小伙伴   search   其他   就是如果程序中有一个变量被用得比较多,但名字起得不是很好,导致其他阅读程序的人搞不清 ...

  3. python爬取微信群聊天信息_跳一跳python使用教程 微信跳一跳python怎么刷分

    跳一跳python使用教程 微信跳一跳python怎么刷分?下面一起来看看吧. 微信跳一跳python怎么刷分?跳一跳python使用教程: 工具介绍 Python 2.7 Android 手机 Ad ...

  4. python使用os和shutil模块进行文件创建,删除,移动,复制,重命名

    python使用os和shutil模块进行文件创建,删除,移动,复制,重命名 文章目录: 1 os模块的使用 1.1 os不带path 1.1.1 os.sep 属性:返回系统路径分隔符 1.1.2 ...

  5. 用Python一键修改上万个文件名(大哥,别右键重命名了好吗???)

    如果你觉得对你有用,请留下一个赞再走,谢谢!! 文章目录 一.头疼的修改文件名,我是傻了 二.茅塞顿开,秒解决同事问题 三 你可能依然感兴趣的文章 四.分享交流 一.头疼的修改文件名,我是傻了 同事问 ...

  6. python文件重命名加日期_Python文件创建日期和重命名 - 批评请求

    场景:当我拍摄一个物体时,我从多个角度拍摄多张图像.乘以我拍摄的物体数量,我可以生成大量的图像.问题:相机产生的图像标识为'DSCN100001','DSCN100002'等.神秘.Python文件创 ...

  7. 【Python】多文件夹图片重命名

    Python多文件夹图片重命名 1.目的 2.多文件夹代码 3.单文件代码 4.结果 1.目的 需要对多个文件夹中的图片进行重新命名 2.多文件夹代码 import ospath = 'D:\\img ...

  8. 安卓分屏神器_【Windows】有视频转换器、视频下载、屏幕录像、GIF制作、照片转视频、分屏工具、铃声工具等功能...

    大家好,今天为大家推荐视频格式转换 WonderFox HD Video Converter Factory PRO中文绿色便携版,转换速度最快的高清视频转换软件,支持300多种视频格式转换,有视频转 ...

  9. 批量重命名照片为序号递增的形式

    现在手机拍照的像素已经很高了,在非专业的情况下,我们拍摄一些新媒体的文章照片都是采用手机.手机拍照又方便又轻便,还可以一键修图.但是有个问题手机拍的照片导出到电脑,名称都是系统自带的英文,而且序号有时 ...

最新文章

  1. ava.lang.UnsatisfiedLinkError:
  2. RabbitMq 详解
  3. Java程序员面试中的多线程问题
  4. 论文解读:深度监督网络(Deeply-Supervised Nets)
  5. Android子线程更新UI的方法总结
  6. layui上传报错会有哪些原因_一到冬天,为什么会比别人更怕冷?有哪些原因?...
  7. 第八篇Django分页
  8. mnesia mysql性能,Mnesia数据库的存储容量是多少?
  9. java8 stringbuilder_为什么 Java 8 中不需要 StringBuilder 拼接字符串
  10. c++ 测试串口速率_山西充放电测试设备实现多台仪器准确通
  11. java索引丢失怎么解决_java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1解决办法...
  12. oracle12c用户名c##_Oracle数据库之oracle12c创建用户提示ORA-65096:公用用户名或角色无效...
  13. 我们如何通过 AI 模拟实现属于自己的清明上河图?
  14. 2007年下半年网工考试试题+分析+标准答案
  15. fedora 22 安装 flash player
  16. 第十一次立会暨第四次集体开发
  17. Linux find 命令大全
  18. Python小程序(4)--52周存钱挑战
  19. 计算机课搞事情检讨,考试作弊被抓写的检讨书(精选10篇)
  20. 计算机导论.mobi,计算思维:计算学科导论

热门文章

  1. MPLS-虚拟专用网 实验(分支之间可以互通)
  2. EPLAN2022——PLC盒子
  3. 6566: Expired?
  4. 【win10问题】——打开PPT显示错误“应用程序无法正常启动(0xc0000142)。请单击确定关闭应用程序。”
  5. StoryBook 插件介绍
  6. 网络孙子兵法!黑客攻防也有三十六计(转)
  7. 视频音频的数据源分析
  8. 成为阿里云国际版分销商的步骤
  9. LINUX-经典面试题2-cat 命令 和tail命令区别
  10. Eureka 源码解析 —— EndPoint 与 解析器