5分鐘例項 按名字從大量簡歷中篩出需要的簡歷

2022-05-28 01:36:09 字數 2475 閱讀 1379

水一篇。開個新坑,本系列重點打造能夠在5分鐘內完成的又簡單又實用的例項。今天以辦公場景比較常見的乙個需求為例。具體場景如下。

需求假設:你的老闆給你上萬份候選人交的簡歷,又給了你乙個excel**,讓你把**裡的人的簡歷挑出來,下班之前發給他。你一看錶距離下班只剩5分鐘了,加班是不可能加班的。

這時候你定睛一看,所有的簡歷檔名裡面都包含人名。

拿起鍵盤開啟你最愛的ide二話不說首先import以下必定要用到的庫

import

pandas as pd

import

osfrom shutil import copyfile

開啟excel**看一眼,找到「姓名」所在的列

是第一列,所以直接讀第一列進來即可

df = pd.read_excel(menu_path, usecols=[0])
之後去遍歷存放簡歷的資料夾下的所有簡歷檔案

for maindir, subdir, filename in

os.walk(resume_path):

for i, file in enumerate(filename):

對每個遍歷到的檔案,先去除檔名裡面的空格,以免兩個字的人名中間有空格,干擾識別。但是又不能直接把變數file給改變,否則後面複製檔案時會找不到檔案。

file_no_space = ''.join(file.split())
這時候再遍歷讀進來的excel的人名資訊,逐條檢查是否能和這個檔名匹配上人名。若可以匹配到,那就把這個檔案複製走。

for key in df['姓名'

]:

if key in

file_no_space:

copyfile(os.path.join(maindir, file), os.path.join(destination_path, file))

print(file)

拓展功能,如果想要把順序也排好,那就只需記錄一下目前匹配到的情況下,這個人名在excel**裡的序號。可以對上面這一塊**做以下改動。首先使用enumerate()迭代df['姓名'],這樣可以啟用迴圈時的索引計數(我不知道這到底叫什麼,我就這樣稱呼了),之後輸出檔案時將這個索引加在檔名最開頭,就能實現按照excel裡面的人名順序排序簡歷。

for i, key in enumerate(df['姓名'

]):

if key in

file_no_space:

copyfile(os.path.join(maindir, file), os.path.join(destination_path, str(i)+file))

print(file)

結束。看一下效果,證明我不是在胡扯,是真的可以用。檔案標號1缺失了,順便還能發現有人沒交簡歷。看一眼時間離下班還剩5分01秒。

對於重名的問題,可以按照「學號」,或者「身份證號」等其他不易重複的值作為匹配的鍵值。但前提是要讓簡歷名字裡包含這些資訊。

#

-*- coding: utf-8 -*-

import

pandas as pd

import

osfrom shutil import

copyfile

resume_path = '

./resume

'menu_path = '

./1組分組名單.xlsx

'destination_path = '

./sorted'if

notos.path.exists(destination_path):

os.makedirs(destination_path)

df = pd.read_excel(menu_path, usecols=[0]) #

以第1列(人名)作為檢索key

for maindir, subdir, filename in

os.walk(resume_path):

for i, file in

enumerate(filename):

file_no_space = ''

.join(file.split())

for i, key in enumerate(df['姓名'

]):

if key in

file_no_space:

copyfile(os.path.join(maindir, file), os.path.join(destination_path, str(i)+file))

print(file)

正規表示式5分鐘入門教程,含大量例項

元字元主要用於字元匹配 說明 匹配除換行符以外的任意字元 w匹配字母或數字或下劃線 s匹配任意的空白符 d匹配數字 b匹配單詞的開始或結束 匹配字串的開始 匹配字串的結束 限定符主要用於表示重複次數 語法說明 重複零次或更多次,等價於 重複一次或更多次,等價於 重複零次或一次,等價於 n重複n次 重...

SQL Server按5分鐘分組統計資料

先把時間分組然後標號 分組劃分 小時 60 分鐘 分鐘值 select datepart hh,getdate 60 datepart mi,getdate 5 例子 把時間分組放到臨時表 建立臨時表獲取分組區域 create table tab start time datetime end ti...

mysql語法,5分鐘,從進門到入門

插入 insert into 表名 values 更新 update 表名 set 列名 where 條件 刪除 delete from 表名 where 條件 as起別名 distinct去重 where 條件1and or between 條件2 where 條件is where 列名like ...