python利用文件时间批量重命名照片和视频
本文实例为大家分享了python利用文件时间批量重命名照片和视频的具体代码,供大家参考,具体内容如下
问题描述
承接上节的问题,在安卓和苹果间互导照片和视频还容易出现文件名混乱的问题,如下图所示。
代码实现
为保证文件名的准确性,这里主要提取照片的拍摄时间和视频的修改时间用于重命名,这两个时间一般是其原始时间,实现代码如下:
import osimport reimport timeimport exifreaddef 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_timedef 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 2if __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+"---文件格式不正确!")
结论
最后修改结果如下。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 。
最后更新于 2021-10-26 08:53:49 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章
- 闪魔 适用iPhone14钢化膜13苹果14promax全屏12覆盖14plus保护XR蓝光iP防爆Pro Max手机11新款ip14贴膜X/XS
- 支付宝的刷脸登录怎么设置?以后怎么用支付宝
- 【新客专享】微帛云感速干卫生巾组合干爽超薄姨妈巾官方旗舰正品
- Python基础详解之描述符
- 垂感卫裤美式高街男ins潮秋冬oversize国潮hiphop直筒r星运动裤子