对我来说的第一个大工程——利用python批量处理文件
- 我是一个又懒又爱钻研的人,啥都懒得拿起来,拿起来又放不下,其实还是蛮辛苦的。从小面对数学问题,要么看不见它,看见了就要解决它。但我会主动去找题目做吗?也不会,因为懒得找。以至于后来,用我们那的话讲“一瓶子不满,半瓶子晃荡”。2009年参加全国高中数学联赛,因为3分,与一等奖失之交臂,一直成为我心头的痛。好在命运对我不薄,现在虽然忙碌,但一直与有能力且善良的人共事,也算得圆满。感慨有点多呢,言归正传~
背景
因为疫情影响,我们又双叒叕回归到线上学习模式。考试过后部分文件(答题卡)不能以纸质版的形式发到各位同学的手中,所以采用电子版。但电子版是以校为单位,将整个年级的同一个学科都放在同一个文件夹下,名单也是打乱的,我们需要将整个文件按班级分类,再由对应班级的学科老师发给自己的学生。
- 那么今天所谓的“大工程”是什么呢?就是给文件“分班”:
首先看下源文件夹,就这样年级中总共几百号人,每个人有4个文件:
步骤如下:
- 建立班级的excel,比如10个班,可以在一个excel中创建10个sheet表。每一个sheet中都是该班级的学生名单(便于后面筛选);
- 建立好班级以后,我们就可以进行筛选啦:
准备工作1:
找到要搜索的地方和搜索完的目的地存放地址
import os
import shutil
import xlrd
src_dir_path = '/Users/carla/Desktop/2020网上学习资料/成绩/答题卡(数学)' # 源文件夹
to_dir_path = '/Users/carla/Desktop/4班答题卡们' # 存放复制文件的文件夹
准备工作2:
用xlrd读取带有关键字的表格
path='/Users/carla/Desktop/4班名单.xlsx' # 名单就是要的关键字
wb = xlrd.open_workbook(path)
sh = wb.sheet_by_name("Sheet1")
nrows = sh.nrows # 获取行数
print