受不了DJI的文件命名方式,自己用python写个批量改名脚本

liftword4个月前 (01-07)技术文章33


手上有个DJI mini2无人机,飞完之后习惯把照片或视频传到电脑硬盘上保存。



但是过段时间表回头看这些照片或视频的时候都不知道是什么样时候拍的,因为这些文件名都是一个DJI前缀加一个序号。如果是通过手机保存的话就是一长串的乱七八糟的名字,比如照片是这样:Photo_(XXX)_DJI_(XXX)_jpg_(XXX)_(X)_(日期日间)_photo_original。

DJI前缀加一个序号的命名方式如果换卡后序号ID会出现重复,如果把文件保存到相同目录不小心还可能被覆盖。

长串的乱七八糟的名字虽然包含信息比较多,但信息多了就乱。

实在是受不了这些文件命名方式,而且这些都是固定写死的,不能自已设置其它命名方式。没办法,不能影响改变别人,那就自己来改变吧。于是现学现卖Python,用python写一个批量修改文件名的程序。我的DJI我来做主,把照片和视频文件都改成DJI+日期时间的命名方式,日期时间精确到秒,这样就不会出现重复。看着这样就更加清晰简洁了。


这是python程序的源代码,保存一下以免弄丢了又要重新学。


还是贴出来吧,重新敲代码也很费时间的。

rewritefile.py

import os

import time

import shutil

from pathlib import Path

from datetime import datetime

suffix_jpg = '.jpg'

suffix_mp4 = '.mp4'

curpath = 'H:\DJI\Pictures\\2021'

logstr = '--------开始--------\r\n'

logstr = logstr +datetime.now().strftime('%Y-%m-%d %H:%M:%S ') + '\r\n'

logstr = logstr + curpath +'\r\n'

fnum=0


for root, dirs, files in os.walk(curpath):

for filename in files:

cursuffix = str.lower(os.path.splitext(filename)[-1])

if ((cursuffix==suffix_jpg) or (cursuffix==suffix_mp4)):

#文件绝对路径+文件名

fullfilename=Path(curpath,filename)

#文件修改时间(非复制或移动时间)

mt=time.strftime('%Y%m%d%H%M%S',time.localtime(os.path.getmtime(str(fullfilename))))

#新文件名称

newfilename = Path(curpath, 'DJI_'+mt+cursuffix)

#如果新旧名称一样,不需要更改,跳到下一个

if (str(fullfilename) == str(newfilename)):

continue


#改名为新名称

shutil.move(str(fullfilename), str(newfilename))

#记录日志

fnum=fnum+1

logstr = logstr+ str(fnum)+ ': '+ str(filename)+' -> ' + str(newfilename) + '\r\n'

print(fnum)

logstr = logstr + '共修改文件: '+str(fnum)+ '个'+ '\r\n'

logstr = logstr +datetime.now().strftime('%Y-%m-%d %H:%M:%S ') + '\r\n'

logstr = logstr +'--------结束--------\r\n'

try:

f =open(str(Path(curpath,'rename.log')),'a+')

f.writelines(logstr)

finally:

f.close()

相关文章

老男孩教育2016年第一期免费系列课程

新的一年新的分享老男孩教育2016年首次在腾讯课程发布免费系统课程,每周三晚8点30至晚10点,不见不散!1.老师阵容:老男孩:老男孩教育的创始人,有实力不解释,你懂得~Alex:帅的不要不要的金角大...

这款自动化工具让你高效做事,优雅的摸鱼

我们经常在 PC 端使用各种 快捷键 来提高我们的办事效率;又或者 IDE 编写代码的过程中,利用 Live Templates 来快速输入常用代码。今天推荐一款工具:AutoHotkey,帮助我们在...

我有点想用JDK17了

大家下午好,JDK版本升级的非常快。JDK版本虽多,但应用最广泛的还得是JDK8,正所谓“他发任他发,我用Java8”。其实我也不太想升级JDK版本,感觉投入高,收益小,不过有一次我看到了一些使用JD...

两个日本人已经支持华语音乐20年了!原来我们从小就听日语歌长

大家伙早上好,不知道小编今天要说的这位明星大家有没有印象呢?而华语音乐的开始相对较晚,所以很多著名的国王或天后,他们的许多原创名著都是外文封面歌曲。即使到目前为止,也有很多歌曲来自外语歌曲,比如筷子哥...

最简单有效的 zabbix 快速学习法,30分钟快速入门

在公司搭建系统级别的监控,由于ELK对流量监控存在局限——现有的工具只记录了累计的流量,而无法计算每时每刻的流量。所以决定最后用zabbix来对网络做监控和报警,下面会从零开始记录zabbix搭建过程...