近期,领导让我组织全行培训,心中暗自叫苦不迭,心想,现在人手这边短缺,只有无穷无尽的工作,没有看得到的空闲。牢骚归牢骚,工作还要开展,领导让先收集全行报名信息,于是制订登记表,邮件上收回来了近百份文件,近百份文件手工合并,工作太无奈!人生无奈,我用python! 编个小程序自动采集吧。

单个数据表单如下(数据表单不复杂,问题是太多份,存放在同一目录下):

编程工具使用 Sublime Text ,这个工具小巧灵活,编写工具类的python代码非常合适。

使用的编程工具是python3.7。

1、编写一个遍历目录下全部文件的工具类:

在目录  /baseframe/file/新建python文件  filetool.py ,代码如下:

import osdef getAllFile():print('  this is a test 1')def getAllFile2():print('  this is a test 2')def get_filelist(dir):filelists=[]for home, dirs, files in os.walk(dir):for filename in files:if(filename[0]!='~'):filelists.append( os.path.join(home, filename))return filelistsdef get_split_filelist(dir):filelists=[]for home, dirs, files in os.walk(dir):for filename in files:filepath=(home,filename)filelists.append(filepath)return filelistsdef get_filename(dir):filelists=[]for home, dirs, files in os.walk(dir):for filename in files:filelists.append(filename)return filelists

2、编写合并数据文件的主程序:

原始数据文件统一存放在/office/excel/source/trainer目录下,合并后的数据文件新生成一个空白文件,存放在D:/result/alltrainer.xls

import xlrd
import xlwtfrom baseframe.file import filetool as fopath = "/office/excel/source/trainer"
fileList = fo.get_filelist(path)all_data=[]
id_finisthed=[]for filename in fileList:xlsx=xlrd.open_workbook(filename)table=xlsx.sheet_by_index(0)print(filename) #有一个分行使用的格式不正确for n in range(2, table.nrows):tno = table.cell(n, 1).valuetid = table.cell(n, 2).valuetname = table.cell(n, 3).valuetorg = table.cell(n, 4).valuedata = {'tno': tno, 'tid': tid, 'tname': tname,'torg':torg}all_data.append(data)print('原数据记录总数',len(all_data))new_wb=xlwt.Workbook()
newsheet=new_wb.add_sheet("new1")rowno=1
for i in range(len(all_data)):if(all_data[i]['tid']!="" and all_data[i]['tid']!="无" and all_data[i]['tid'] not in id_finisthed):#过滤员工号为空为无,根据员工号增加去重处理id_finisthed.append(all_data[i]['tid'])newsheet.write(rowno,1,rowno)newsheet.write(rowno,2,all_data[i]['tid'])newsheet.write(rowno,3,all_data[i]['tname'])newsheet.write(rowno,4,all_data[i]['torg'])rowno+=1
print('处理后记录总数',rowno-1)
new_wb.save('D:/result/alltrainer.xls')

以上是简单汇单,还有去重,套模板、数据合并,下回分解,更多精彩!

轻松办公系列1:利用python自动收集培训人员名单相关推荐

  1. 高效办公,如何利用Python自动发送邮件

    自动发送邮件 我们把报表做出来以后一般都是需要发给别人查看,对于一些每天需要发的报表或者是需要一次发送多份的报表,这个时候可以考虑借助Python来自动发送邮件. 使用邮箱的第一步 一般我们在使用QQ ...

  2. 极速系列07—利用python将文件夹快速分类

    我们有一个文件夹,里面嵌套文件夹+文件,我们想将这些文件分类整理清楚,如何快速分类呢? 思路:读取文件夹中的所有文件,按照我们要分类的标准,制定规则(一定要能找到分类的标准,比如按照年份.文件名.文件 ...

  3. 极速系列06—利用python批量发送邮件

    python发邮件需要掌握两个模块:smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email模块主要负责构造邮件. 1 介绍 ...

  4. python mysql 遍历_Python自动化办公系列六(pdf文档处理)

    PDF 表示 Portable Document Format,使用 .pdf 作为文件扩展名.虽然 PDF 支持许多功能,但现在我们专注于最常做的两件事:从 PDF 读取文本内容和从已有的文档生成新 ...

  5. Python开发工具系列1------基于业务常见情况,利用Python实现短文本相似度模型并且利用PyQt5封装为工具

    Python开发工具系列1------ 基于业务常见情况,利用Python实现短文本相似度模型并且利用PyQt5封装为工具 业务场景介绍 工具介绍 关键功能实现 界面实现 主要业务功能实现 代码与工具 ...

  6. python爬去百度文库_利用Python语言轻松爬取数据[精品文档]

    利用 Python 语言轻松爬取数据 对于小白来说,爬虫可能是一件非常复杂. 技术门槛很高的事情. 比如有人认为学爬虫必须精通 Python ,然后哼哧哼哧系统学习 Python 的每个知识点,很久之 ...

  7. python爬取百度文库_利用Python语言轻松爬取数据

    利用 Python 语言轻松爬取数据 对于小白来说,爬虫可能是一件非常复杂. 技术门槛很高的事情. 比如有人认为学爬虫必须精通 Python ,然后哼哧哼哧系统学习 Python 的每个知识点,很久之 ...

  8. python编写sql注入工具-利用Python实现SQL注入 - Python黑客编程入门系列 - 8

    {getUnitName} {getLessonName} 敬请期待 免费 {getTaskName} 剩余观看时长:{watchLimitRemaining} 回放 {activityStartTi ...

  9. 【python脚本系列】利用mido库解析midi文件

    [python脚本系列]利用mido库解析midi文件       Hallo大家好~~我是Lampard猿奋       昨天写了关于Midi数字化乐器接口的文章,介绍了midi是一组代表音乐参数( ...

最新文章

  1. 技术图文:字典技术在求解算法题中的应用
  2. 如何实现对ELK各组件的监控?试试Metricbeat
  3. TFLearn 在给定模型精度时候提前终止训练
  4. sublime 插件
  5. make的自动变量和预定义变量
  6. JS语言的基本构成、变量、数据类型
  7. 正则表达式匹配(动规)
  8. Date() 小于等于当天
  9. 苹果收购英特尔手机芯片业务;西门子将在华建立 5G 研发中心;React Native 0.60.4 发布 | 极客头条...
  10. 【作业】条件、循环、函数定义、字符串操作练习
  11. jquery对象与js对象的相互转换
  12. 分布式事务之基础理论(CAP/BASE理论)篇
  13. saiku 展示优化第二步(要诀和技巧)
  14. 数据结构堆栈 内存堆栈_零堆栈数据科学家第二部分秋天
  15. 猿创征文 | 国产数据库之openGauss的单机主备部署及快速入门
  16. css和html制作网页
  17. 宿舍管理系统开发的总结与展望
  18. 关于在VS2022或者高级版本运行环境下遇到fopen,strerror等不安全的问题
  19. Mac上彻底卸载mysql
  20. 专业性体育平台——虎扑的发展与创新的思考(第五次课后作业)

热门文章

  1. GIS理论知识(二)之GIS标准、体系结构及平台软件
  2. 批量识别医疗票据【第1版】
  3. 【Photoshop_CC_2018】msvcr120.dll丢失及应用程序无法正常启动0xc000007b修复dll问题解决
  4. ssh: connect to host xx.xx.xxx.xxx port 22: Connection refused
  5. 我在公司干了一个月,办完辞职手续,被告知一个月后来领工资
  6. 视频跟踪学习——TLD
  7. Python写代码遇到的问题集锦
  8. cisco S3750交换机配置VLAN
  9. 思科C3750端口汇聚聚合
  10. PwC 普华永道面试归来