偷懒工具包: 序号重命名
修改文件名中的序号位置
起因
其实就是老师给的课件的命名规则是章节名+章节序号
, 造成在文件夹显示的时候, 文件顺序会有点混乱. 因为文件夹排序一般是按文件名的, 然而章节名
往往不太一样, 造成了在想找某一章的文件时有种混乱的痛苦.
当然有人会觉得按修改时间
排序就没问题了, 但是如果有时候对pdf或者ppt做了标注或者改动的话, 又要乱套了.
动手
代码主要思路是应用正则表达式提取出章节序号, 并移动到文件名的最前面.
1 | import os |
2 | import re |
其中os
包是为了读取指定文件夹下的所有文件, 这样我们就可以一次性批量修改文件名了. 这两个包都是python标配了, 不劳pip
或conda
.
1 | ind = re.findall(r"\d", fn) |
findall
是re
的一个函数, 第一个参数是正则表达式的匹配格式, 第二个参数是需要搜索的字符串对象.
这里的匹配格式比较简单, \d
代表的是数字, 包括浮点型, 引号前面加个r
表示这是一个正则表达式的字符串, 可以取消掉一些反斜杠的转义作用.
章节序号提取出来之后, 在通过字符串拼接放到文件名前面, 最后重命名文件, 完成.
重命名后的文件效果图可以看下图, 文件按序号顺序整齐排列, 总算圆了我这个强迫症的心愿, 查找文件也方便了很多.
一般来说, 每次老师发了新课件之后都要重新运行一次程序(除非自己手改), 为了避免程序重复操作已经重命名过的旧文件, 就需要在对每个文件名操作前做些判断筛选.
Usage
打开网页https://github.com/Benature/lazy-kit, 点击右侧的
clone or download
.
将lec_rename.py
中的
1 | root_path = "path/to/the/lecture/folder" |
修改为你需要处理的那个文件夹路径, 然后在py文件所在文件夹下打开命令行运行程序即可
1 | python3 lec_rename.py |
具体代码已经上传GitHub仓库👇 欢迎大噶clone来用用, 如果发现有什么要补充的话也欢迎PR.
https://github.com/Benature/lazy-kit/blob/master/lecture_rename/