美文网首页
python办公-比对微信群学生到家报到

python办公-比对微信群学生到家报到

作者: 大野的自我修养 | 来源:发表于2021-01-28 22:31 被阅读0次

    如何通过python比对两份学生名单,找出没有报道的学生呢?实例告诉大家。

    今天是女朋友的班里最后一场期末考试,孩子们回家后家长就在群里发报到;
    然后怎么从中去找出哪些是没有报道的孩子,好去提醒家长报到,关心孩子是否到家呢;
    这里还有一份学生名单

    微信群报道 学生名单

    下面就来演示一下通过python迅速比对;这里用到的是python的openpyxl包来处理excel;

    步骤一
    保存这些报道的文字到11.txt,

    步骤二
    安装openpyxl的包:

    pip install openpyxl

    步骤三
    写简单的python代码,导入包,打开txt, 遍历所有行,把所有文字变为一个字符串对象a;
    用openpyxl 打开excel ,打开表格,取第二列的所有名字sheet.cell(row=i,column=2).value;
    是否是包含关系,如果是打印已经报道,如果不是则把名字放到集合strs, 最后打印strs。
    每一个名字都去和上面的字符串里面去比对,这里把要姓名为三个字的变成两个字的名,因为有的家长只说两个字;

    #导入openpyxl
    import openpyxl
    
    # 获得报道的所有文字,变成一个字符串,声明字符串对象a, 列表stds
    a=''
    stds=[]
    
    with open('11.txt','r',encoding='utf-8') as f:
        lines=f.readlines()
        # print(lines)
        for line in lines:
            a=a+line
        #   a.append(line)
    # print(a)
    
    #打开excel,打开工作表,遍历第二列,并比对名字在不在报道的文字里面
    wb= openpyxl.load_workbook('54.xlsx')
    sheet=wb.active
    for i in range(2,sheet.max_row+1): #从第二行有名字开始
        # 如果名字长三个字则 取后面的两个字,为std对象
        if len(sheet.cell(row=i,column=2).value) >=3:
    
            std=sheet.cell(row=i,column=2).value[1:3]
        else:
            std=sheet.cell(row=i,column=2).value
        if std in a:
            print('已经报道')
        else:
            print(sheet.cell(row=i,column=2).value)
            stds.append(sheet.cell(row=i,column=2).value)
    print(stds)
    #打印还没有到家的孩子名单
    

    下面是打印的结果:

    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    刘*菲
    已经报道
    已经报道
    已经报道
    左*乐
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    段*豪
    已经报道
    谢*鹏
    唐*诗
    已经报道
    已经报道
    已经报道
    孙晓能
    已经报道
    已经报道
    已经报道
    陈*炜
    蓝*翔
    已经报道
    已经报道
    已经报道
    已经报道
    王*勇
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    已经报道
    何*俊
    已经报道
    已经报道
    已经报道
    [ '刘*菲', '左*乐', '段*豪', '谢*鹏', '唐*诗', '孙*能', '陈*炜', '蓝*翔', '王*勇', '何*俊']
    
    Process finished with exit code 0
    
    

    今天就写到这里,后面如果在生活和工作有实际例子,都会写出来分享;谢谢大家

    相关文章

      网友评论

          本文标题:python办公-比对微信群学生到家报到

          本文链接:https://www.haomeiwen.com/subject/infftltx.html