批量、有顺序的更改档名-python
程序员文章站
2022-01-30 20:47:46
...
开始前的碎念
我还算是python的小白,对于程序的编写还在努力的学习中,从CSDN各个博文中得到了许多帮助与知识(由衷的感谢),因此自己完成了一小部份的成果后,我决定通过博文纪录我的学习笔记,也算是对于学习的一种负责,希望借此方式能够重整思路,因为有时候会卡在一个点很久,找了中外的许多网站才解决了困惑。所以我会尽量的完整纪录我的思路与困惑的点在文中,跟我一样困惑的小伙伴们就能减少迷茫的时间了,快速的走向下一步的科研哈!
问题描述
由于在整理文件时,需要将文件依照档名进行初步的分类,因此,在网上搜寻了很多更改档名的办法。但因为自己需要的更名方式是为需要按档案的年份来命名,并且依次12345…的命名方式(举例来说:2017-1、2017-2、2017-3等的新名称),所以利用了一些for loop帮助我实现。
代码实现
实现的python套件包是为os,有很多涉及处理文件存储、命名、读取等的行为都会需要os套件(这是基本的粗浅了解,以后有更深的体会会再补充说明白的~)
// 导进需要的套件包绝对是第一步
import os
path='存储的路径' #这就是欲进行档名更改的文件路径,路径的斜线是为/,要留意下!
files=os.listdir(path)
print('files') #印出读取到的文件名称,用来确认自己是不是真的有读到
n=0 #设定初始值
for i in files: #因为文件夹里面的文件都要重新更换名称
oldname=path+files[n] #指出文件现在的路径名称,[n]表示第n个文件
newname=path+'2017-'+str(n+1)+'.wav' #在本案例中的命名规则为:年份+ - + 次序,最后一个.wav表示该档案的类型
os.rename(oldname,newname)
print(oldname+'>>>'+newname) #印出原名与更名后的新名,可以进一步的确认每个文件的新旧对应
n=n+1 #当有不止一个文件的时候,依次对每一个文件进行上面的流程,直到更换完毕就会结束
os.listdir
传回文件夹中每个文件的名称os.rename
用来将更改原名到新名
- 代码中提到会按照文件的排列次序依次重新命名,而其中的排列次序为当前在文件夹中设定的排列次序,举例来说,假设在文件夹中设定的排列为根据时间排列的,那在这个改名字的过程中,他会按照当前的文件排序按照顺序排下来。
- 在最后一步的打印新旧名称的对应可以帮助我们纪录或了解~~(盯着代码运行,发现一个一个新旧对应印出来特别疗愈2333)~~
- 我通常会在执行名字更换前,先将原文件夹复制一个,以供日后作参考~~(是个非常怕原始资料遗失的人呜呜)~~
思路
- for的下个loop会再从读取文件开始
再次的碎念
这是第一篇学习的心得,算是利用python自动化完成重复性工作。我其实是很任劳任怨的,一直都是想通过最原始的方式手动进行更改,在几个月前的我可能不会想用这个方法帮我批量完成,总想说用最笨的方法有一天我会完成的,但当我拥有的数据量近千的时候,我终于产生找寻一些智能一点的方式完成的动机了哈哈哈。虽然代码看着也没有多少行,也可能还不够聪明,但我追求的是用自己能理解的代码完成我想做的事,目前这是我能够说服自己也能完成我要做的事的实现代码,总之算是对自己学习的一个纪录,同时也希望能帮上跟我一样的入门学习者!
下一篇想要记录的是频谱图的生成~ 待续~