昨天我们学习了如何批量制作合适的二维码,今天来刷几道题练练手!
文章目录
- 1. 制作名单
- 2. 年会抽奖来啦
- 3. 精准查找
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):# 通过"_"分割文件名# 索引第一个元素赋值给变量namename=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_rowdata_row=table.row_values(row)# 如果列表data_row第一个元素为numif(data_row[0]==num):# 将列表第二个元素赋值给namename=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 xlrdpath="/Users/minmin/资料.xlsx"data=xlrd.open_workbook(path)work1=data.sheets()[0]work1Names=work1.col_values(1)import ospathFile="/Users/minmin/Selfie"fileName=os.listdir(pathFile)count=0for name in fileName:if(name!=".DS_Store"):myname=name.split(".")[0]if myname in work1Names:count+=1else: print(f"{myname}非公司员工")
哈哈,今天到这里就结束了呢,敬请期待下一个趣味项目吧!