需求如下:从邮箱打包下载了一堆文件,文件名均带有姓名、学号、实验X等关键信息,这些关键信息的顺序可能各不相同。需根据每个文件的名称归档到每个名为“学号_姓名”的文件夹中,“学号_姓名”文件夹已事先利用md命令批量生成。
思路很简单,利用正则匹配出原文件和文件夹中的学号,如果学号相同,则将该文件移动到对应文件夹中。
技术要点:
1.学号的正则表达式。我校的学号格式为大写字母S或者大写字母B开头,后面还有九个阿拉伯数字。为防止有的同学将大写字母写成小写字母,我们在正则中加入小写字母。故正则表达式为[BSbs0-9],此方法需要引入re包。
2.获取文件名。利用os.walk()方法,此方法需要引入os包。
3.移动文件。利用move方法,此方法需要引入shutil包。
代码如下:
import os,re
from shutil import move
filePath=r'此处写入文件移动前的路径'
folderPath=r'此处写入“学号_姓名”文件夹所在路径'
for dirName