今天高高兴兴,因为复试名单公布了,但拿到名单的时候发现是乱序的,那么怎么样才能拿到本专业的真实名单呢?
所以打算利用所学,来筛选出符合条件的名单,轻松判断自己所处的位置及竞争力。
os
——用来获取当前路径re
——用来正则匹配考生编号pandas
——用来操作csv,读取和写入
import re
import os
import pandas as pd
- 首先我们需要明确要匹配的字符的构成
考生编号:学校编号+地区号+学院号+方向+流水号
- 根据需要书写正则表达式
# 【计算机专硕】匹配规则
pat1 = "^10033[0-9]{4}16[123]0[0-9]{2}$"
这里我们是用pandas进行读取文件,将其格式化为df类型。
需要注意的是:windows默认的编码方式为gbk,而不是utf-8
with open(read_path, encoding="gbk") as file:
data = pd.read_csv(file)
取得第i行的第一列元素,将其转换成字符串,便于后续对其进行正则匹配
# 取到15位准考证号
number = data.iloc[[i], 0].to_string()[-15:]
利用re.match()
进行匹配,判断当前是否为我们所查找的。
如果匹配,则取到该行的所有元素。
if re.match(rule, number):
df = data.iloc[[i], :]
pandas的df类型数据直接就有输出到csv文件的方法,直接调用输出即可。
不过有几点需要注意:
- 输出依旧要采用gbk编码
- 索引值要置为False,不然会多一列我们并不想要的原先数据的索引列
- 输出模式要选择附加模式,这样不会覆盖原数据
df.to_csv(write_path, mode="a", index=False,header=None, encoding="gbk")
这就是一个简单的不能再简单的脚本,写着玩用来练手的,没有想到写这个小脚本会用到这么久的时间,所以决定把它记录下来,不过收获还是很大的,学习了如何去使用pandas去操作csv文件。完结,撒花。