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


    昨天我们学习了如何批量制作合适的二维码,今天来刷几道题练练手!

    在这里插入图片描述



    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    2. 年会抽奖来啦

    年末啦,邹邹任职的公司组织了年会,年会上怎么少得了抽奖呢!从 1-200 的工号中随机抽取一位数,并找出对应的员工姓名,这该怎么实现呢?🤔
    在这里插入图片描述

    步骤如下:

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

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

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

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

    工作表部分截图

    在这里插入图片描述
    1️⃣.nrows 属性可以获取工作表的行数

    rows = table.nrows
    print(rows)
    
    • 1
    • 2

    2️⃣从列表中随机选取一个元素

    import random
    num = random.randint([1, 2, 3, 4])
    print(num)
    
    • 1
    • 2
    • 3

    示例代码如下:

    # 导入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 # 退出循环!      
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    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
    在这里插入图片描述

    示例代码如下:

    # 冲
    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}非公司员工")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    哈哈,今天到这里就结束了呢,敬请期待下一个趣味项目吧!
    在这里插入图片描述

  • 相关阅读:
    postgresql简单导出数据与手动本地恢复(小型数据库)
    Qt5开发从入门到精通——第二篇(控件篇)
    html支持网络串流flv视频播放
    标签类目体系(面向业务的数据资产设计方法论)-读书笔记4
    Android修行手册-实现利用POI将图片插入到Excel中(文末送书)
    KingbaseES数据库 kdb_schedule 自动定时任务
    ES 查询用法
    线程池详解及完整代码实现
    EPICS自定义设备支持--longin记录的异步设备支持编写
    Docker Compose及Docker 知识点整理
  • 原文地址:https://blog.csdn.net/weixin_73453526/article/details/132636841