Skip to content

Liuyang0001/selcet_from_csv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

起因

今天高高兴兴,因为复试名单公布了,但拿到名单的时候发现是乱序的,那么怎么样才能拿到本专业的真实名单呢?

所以打算利用所学,来筛选出符合条件的名单,轻松判断自己所处的位置及竞争力。


导入库函数

  • os ——用来获取当前路径
  • re ——用来正则匹配考生编号
  • pandas ——用来操作csv,读取和写入
import re
import os
import pandas as pd

具体实现方法

写出对应的正则表达式

  1. 首先我们需要明确要匹配的字符的构成

考生编号:学校编号+地区号+学院号+方向+流水号

  1. 根据需要书写正则表达式
# 【计算机专硕】匹配规则
pat1 = "^10033[0-9]{4}16[123]0[0-9]{2}$"

读取csv文件

这里我们是用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], :]

输出到csv文件

pandas的df类型数据直接就有输出到csv文件的方法,直接调用输出即可。

不过有几点需要注意:

  1. 输出依旧要采用gbk编码
  2. 索引值要置为False,不然会多一列我们并不想要的原先数据的索引列
  3. 输出模式要选择附加模式,这样不会覆盖原数据
df.to_csv(write_path, mode="a", index=False,header=None, encoding="gbk")

结尾

这就是一个简单的不能再简单的脚本,写着玩用来练手的,没有想到写这个小脚本会用到这么久的时间,所以决定把它记录下来,不过收获还是很大的,学习了如何去使用pandas去操作csv文件。完结,撒花。

About

根据匹配规则,筛选复试名单

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages