《python趣味工具》——酷炫二维码(3)计算机二级考试题-LMLPHP



1. 制作名单

秋招来了!hr部门需要获得简历初筛后的候选者名单,所有候选者简历都按照“小明_xx大学.pdf”命名放在文件夹内,使用昨天学习的内容,可以迅速获取候选人名单么🤔

步骤如下:

  1. 获取文件夹内所有文件的名称;

  2. 如果文件名里有"_",就分割文件名,获取第一个元素即姓名;

  3. 将所有的名称放入列表中,并输出。

文件夹路径:“/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 的工号中随机抽取一位数,并找出对应的员工姓名,这该怎么实现呢?🤔
《python趣味工具》——酷炫二维码(3)计算机二级考试题-LMLPHP

步骤如下:

  1. 从 1- 200 中随机成生成一个数;

  2. 读取 Excel 文件,获取第一张工作表中非表头数据;

  3. 按行遍历工作表中的数据,将每一行的数据放在列表中;

    • 3.1. 如果列表中的第一个元素与随机数匹配,那么就获取列表第二个元素;
    • 3.2 格式化字符串输出"获奖者是工号为{工号}的{名字}"。

工作表部分截图

《python趣味工具》——酷炫二维码(3)计算机二级考试题-LMLPHP
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文件中的名字与文件夹中的文件名进行比对,找出不小心混入的图片。

解题步骤:

  1. 导入 xlrd 模块,使用 xlrd.open_workbook() 读取指定工作簿,sheets() 获取第一个工作表,col_values() 将表格中的名字全部提取出来;

  2. 导入 os 模块,使用 os.listdir() 获取文件夹路径下所有文件名;

  3. 遍历存储文件名的列表;

    • 3.1 如果文件名不是".DS_Store",调用 split() 分割文件名,得到文件名称;
    • 3.2 如果文件名称不在名字中,则用格式化字符串输出"xx非公司员工"。

文件路径:
Excel 文件:/Users/minmin/资料.xlsx
头像文件夹:/Users/minmin/Selfie
《python趣味工具》——酷炫二维码(3)计算机二级考试题-LMLPHP

示例代码如下:

# 冲
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}非公司员工")

哈哈,今天到这里就结束了呢,敬请期待下一个趣味项目吧!
《python趣味工具》——酷炫二维码(3)计算机二级考试题-LMLPHP

09-10 14:38