用Python帮劳务员填充项目备案人员的银行账号

        在建筑业,在建工程项目需要按规定备案许多人员在项目中,如果项目很多的话,那么备案人员的资料也就很庞大。劳务员需要制作这些备案人员的每月工资表,而查找并填写这些人员的银行账号是件费时费力的“体力活”。

        在劳务员的求助下,我用Python帮她们写了一段填充项目备案人员的银行账号的代码,根据“工资表”上的人员清单,自动在“备案人员资料”中查找到他们对应的银行卡号,并填充到工资表中。

        为简化模型,我将“工资表”简化成为一个只包含“姓名”列的清单,将“备案人员资料”简化为一个只包含“姓名”列和“银行账号”列的清单,并全部输出到文本文件中。

        以下,就是清单示例:

         如上两表,现要根据左表的人员清单在右表中查询该人员对应的银行账号,没有的放空。

         大家可能觉得这没几行,实际上,无论左表还是右表,清单要长得多,手工核对是非常费时费力的。

         以下是我写的用于解决这件事情的Python代码。

        代码最终生成一个:按左表的顺序填充了右表中的银行账号的清单,以空格间隔,剔除了所有不必要的符号,以便导入EXCEL,供劳务员做进一步处理,并自动打开该文件:

'''劳务无法提供备案人员完整的工资表,故立此项目核对'''
import logging
#导入日志模块
#logging.disable(logging.CRITICAL)
#定义log的基本配置:
logging.basicConfig(level=logging.DEBUG,format='%(asctime)s-%(levelname)s:%(message)s')

#切换到工作目录,避免繁琐的路径描述
工作目录='G:\\Xct\\python\\劳务工资回单'
import os
os.chdir(工作目录)

#导入工资表人员
import os
姓名列表=[]
工资表人员文件 = '工资表人员.txt'
with open(工资表人员文件, 'r', encoding='utf-8-sig') as 文件:
    工资表人员 = 文件.readlines()
    logging.debug('工资表人员文件中的人员有:%s' %(工资表人员))
    for 姓名 in 工资表人员:
        姓名转列表=[姓名.strip()]
        #将"工资表人员"列表的元素转为子列表,同时去除子列表元素首尾的制表符\t、回车符\r、换行符\n
        姓名列表.append(姓名转列表)
        #创建目标母列表
    print(姓名列表)

#导入备案人员银行卡号
姓名账号=[]
备案人员银行卡号文件='备案人员银行卡号.txt'
with open(备案人员银行卡号文件, 'r', encoding='utf-8-sig') as 文件:
    备案人员银行卡号= 文件.readlines()
    logging.debug('备案人员银行卡号文件中的人员有:%s' % (备案人员银行卡号))
    #将人员姓名与身份证号分割为列表
    for 账号信息 in 备案人员银行卡号:
        列表=账号信息.split()
        #按空格(默认)分割字符串为列表
        姓名账号.append(列表)
        #创建数据母列表
    print(姓名账号)

#按“姓名列表”的顺序,搜索“姓名账号”列表,将同名者的账号追加到“姓名列表”中
姓名=''
输出列表=[]
for 姓名 in 姓名列表:
    logging.debug('姓名:%s' % (姓名))
    for 户主账号 in 姓名账号:
        logging.debug('户主:%s' % (户主账号[0]))
        logging.debug('账号:%s' % (户主账号[1]))
        if 姓名[0]==户主账号[0]:
            姓名.append(户主账号[1])
            logging.debug('追加了账号的姓名列表:%s' % (姓名))
    输出列表.append(姓名)
print (输出列表)

#输出到文本文件
import sys
写入文件路径 = '临时转存列表.txt'
with open(写入文件路径, 'w', encoding='utf-8-sig') as 文件:
    sys.stdout = 文件
    for 变量 in 输出列表:
        print(变量)
#打开该文本文件,删除所有不必要的符号
最终结果文件 = '输出列表.txt'
要删除的符号 = ["[", "]", ",", "'"]
with open(写入文件路径, 'a+', encoding='utf-8-sig') as 文件:
    sys.stdout = 文件
    with open(最终结果文件, 'w', encoding='utf-8-sig') as 结果:
        sys.stdout = 结果
        文件.seek(0)
        内容 = 文件.read()
        for 标点 in 要删除的符号:
            内容 = 内容.replace(标点, '')
        print(内容)
# 删除临时文件
os.remove(写入文件路径)
# 打开目录
os.startfile(工作目录)
# 用操作系统默认程序打开上述文件
os.startfile(最终结果文件)

 以下是运行结果,经核对,无误:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

将出东方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值