Lazy Kit | 课件序号必须在文件名开头

偷懒工具包: 序号重命名

修改文件名中的序号位置

起因

其实就是老师给的课件的命名规则是章节名+章节序号, 造成在文件夹显示的时候, 文件顺序会有点混乱. 因为文件夹排序一般是按文件名的, 然而章节名往往不太一样, 造成了在想找某一章的文件时有种混乱的痛苦.

after rename

当然有人会觉得按修改时间排序就没问题了, 但是如果有时候对pdf或者ppt做了标注或者改动的话, 又要乱套了.

动手

代码主要思路是应用正则表达式提取出章节序号, 并移动到文件名的最前面.

1
import os
2
import re

其中os包是为了读取指定文件夹下的所有文件, 这样我们就可以一次性批量修改文件名了. 这两个包都是python标配了, 不劳pipconda.

1
ind = re.findall(r"\d", fn)

findallre的一个函数, 第一个参数是正则表达式的匹配格式, 第二个参数是需要搜索的字符串对象.

这里的匹配格式比较简单, \d代表的是数字, 包括浮点型, 引号前面加个r表示这是一个正则表达式的字符串, 可以取消掉一些反斜杠的转义作用.

章节序号提取出来之后, 在通过字符串拼接放到文件名前面, 最后重命名文件, 完成.

重命名后的文件效果图可以看下图, 文件按序号顺序整齐排列, 总算圆了我这个强迫症的心愿, 查找文件也方便了很多.

after rename

一般来说, 每次老师发了新课件之后都要重新运行一次程序(除非自己手改), 为了避免程序重复操作已经重命名过的旧文件, 就需要在对每个文件名操作前做些判断筛选.

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/