1. 制作名单
秋招来了!hr部门需要获得简历初筛后的候选者名单,所有候选者简历都按照“小明_xx大学.pdf”命名放在文件夹内,使用昨天学习的内容,可以迅速获取候选人名单么🤔
步骤如下:
-
获取文件夹内所有文件的名称;
-
如果文件名里有"_",就分割文件名,获取第一个元素即姓名;
-
将所有的名称放入列表中,并输出。
文件夹路径:“/Users/minmin/简历合集”
# 导入os模块
import os
# 将文件夹路径"/Users/minmin/简历合集",赋值给变量pathFile
pathFile = "/Users/minmin/简历合集"
# 使用os.listdir()函数获取该路径下所有文件名,并赋值给变量allItems
allItems=os.listdir(pathFile)
# 初始化列表name_list,存储名单
name_list = []
# for循环遍历allItems,赋值给变量item
for item in allItems:
# 如果文件名有"_"
if("_" in item):
# 通过"_"分割文件名
# 索引第一个元素赋值给变量name
name=item.split("_")[0]
# 使用append方法将name添加到name_list中
name_list.append(name)
# 使用print()输出name_list
print(name_list)
2. 年会抽奖来啦
年末啦,邹邹任职的公司组织了年会,年会上怎么少得了抽奖呢!从 1-200 的工号中随机抽取一位数,并找出对应的员工姓名,这该怎么实现呢?🤔
步骤如下:
-
从 1- 200 中随机成生成一个数;
-
读取 Excel 文件,获取第一张工作表中非表头数据;
-
按行遍历工作表中的数据,将每一行的数据放在列表中;
- 3.1. 如果列表中的第一个元素与随机数匹配,那么就获取列表第二个元素;
- 3.2 格式化字符串输出"获奖者是工号为{工号}的{名字}"。
工作表部分截图
1️⃣.nrows
属性可以获取工作表的行数
rows = table.nrows
print(rows)
2️⃣从列表中随机选取一个元素
import random
num = random.randint([1, 2, 3, 4])
print(num)
示例代码如下:
# 导入xlrd
import xlrd
# 导入 random
import random
# 将Excel文件夹路径/Users/minmin/资料.xlsx,赋值给变量path
path = "/Users/minmin/资料.xlsx"
# 读取path的工作簿并赋值给变量data
data = xlrd.open_workbook(path)
# 使用sheets()获取工作表对象,索引第一个元素赋值给变量table
table = data.sheets()[0]
# 获取table的行数,并赋值给变量rows
rows=table.nrows
# 随机从1到200选一个数,赋值给num
num=random.randint(1,200)
# for循环遍历工作表非表头的行数,赋值给变量row
for row in range(1,rows):
# 使用row_values()得到工作表的对应行数据,并赋值给变量data_row
data_row=table.row_values(row)
# 如果列表data_row第一个元素为num
if(data_row[0]==num):
# 将列表第二个元素赋值给name
name=data_row[1]
# 格式化输出"获奖者是工号为{工号}的{名字}"
print(f"获奖者是工号为{num}的{name}")
break # 退出循环!
3. 精准查找
天啊~敏敏在整理同事们的头像时,不小心混入了非公司员工的图片,要一一比对查找出可太费时了,这可怎么办呀🤔
通过今天的学习敏敏想到了好办法,可以将Excel文件中的名字与文件夹中的文件名进行比对,找出不小心混入的图片。
解题步骤:
-
导入 xlrd 模块,使用 xlrd.open_workbook() 读取指定工作簿,sheets() 获取第一个工作表,col_values() 将表格中的名字全部提取出来;
-
导入 os 模块,使用 os.listdir() 获取文件夹路径下所有文件名;
-
遍历存储文件名的列表;
- 3.1 如果文件名不是".DS_Store",调用 split() 分割文件名,得到文件名称;
- 3.2 如果文件名称不在名字中,则用格式化字符串输出"xx非公司员工"。
文件路径:
Excel 文件:/Users/minmin/资料.xlsx
头像文件夹:/Users/minmin/Selfie
示例代码如下:
# 冲
import xlrd
path="/Users/minmin/资料.xlsx"
data=xlrd.open_workbook(path)
work1=data.sheets()[0]
work1Names=work1.col_values(1)
import os
pathFile="/Users/minmin/Selfie"
fileName=os.listdir(pathFile)
count=0
for name in fileName:
if(name!=".DS_Store"):
myname=name.split(".")[0]
if myname in work1Names:
count+=1
else:
print(f"{myname}非公司员工")
哈哈,今天到这里就结束了呢,敬请期待下一个趣味项目吧!