python实现自动化之文件合并
作者:Alan.hsiang 发布时间:2023-12-27 07:11:37
标签:python,文件合并
假如公司需要统计每个员工的个人信息,制定好模板后,由员工填写,然后发送到综合部进行汇总,在这种情况下,如果公司有上百位员工的信息需要统计,且采用纯手工进行复制粘贴的方式进行汇总,则将是一项耗时费力易错的工作。本文主要以一个简单的小例子,简述如何通过Pyhton进行自动化文件合并。
涉及知识点
xlrd模块:文件的读取
xlwt模块:文件的生成
设计思路
1、获取指定目录下所有excel格式的文件。
2、循环读取Excel文件内容【读取固定的行与列】,将内容暂存内存中。
3、将内存中数据,写入到新的Excel文件中,并保存到指定位置。
效果示例
本例为了简化操作,总共有10个需要汇总的文件,如下所示:
每一个文件采用相同模板,格式一致,如下所示:
汇总后的文件,如下所示:
核心代码
引入相关的模块,如下所示:
import xlrd
import xlwt
import os
读取excel内容,如下所示:
def read_excel(excel_folder: str):
"""
读取Excel文档
:param excel_folder:
:return:
"""
excel_files = [] # excel文件列表
excel_contents = [] # excel文件内容
files = os.listdir(path=excel_folder)
if len(files) > 0:
for file in files:
if file.endswith('.xls'):
excel_files.append(file)
if len(excel_files) == 0:
print('此目录下没有对应的Excel文件')
# 循环读取文档
for file in excel_files:
full_path = os.path.join(excel_folder, file)
book = xlrd.open_workbook(filename=full_path)
sheet = book.sheet_by_index(sheetx=0)
# 取固定位置的值
content = {
'名称': sheet.cell_value(1, 0),
'年纪': sheet.cell_value(1, 1),
'性别': sheet.cell_value(1, 2),
'籍贯': sheet.cell_value(1, 3)
}
excel_contents.append(content)
return excel_contents
生成Excel内容,如下所示:
def write_excel(excel_path: str, excel_contents: list):
"""
生成Excel文档
:param excel_path:
:return:
"""
if len(excel_contents) == 0:
print('没有需要保存的内容')
return
book = xlwt.Workbook(encoding='utf-8')
sheet1 = book.add_sheet('统计信息')
# 先写标题
sheet1.write(0, 0, '名称')
sheet1.write(0, 1, '年纪')
sheet1.write(0, 2, '性别')
sheet1.write(0, 3, '籍贯')
i = 1
for content in excel_contents:
sheet1.write(i, 0, content['名称'])
sheet1.write(i, 1, content['年纪'])
sheet1.write(i, 2, content['性别'])
sheet1.write(i, 3, content['籍贯'])
i += 1
book.save(excel_path)
整体调用
excel_folder = r'D:\MyProject\Demo01\TESTEXCEL'
excel_path = r'D:\MyProject\Demo01\TESTEXCEL\汇总信息.xls'
excel_contents = read_excel(excel_folder)
# print(excel_contents)
write_excel(excel_path, excel_contents)
print('done')
来源:https://blog.csdn.net/fengershishe/article/details/119581034


猜你喜欢
- QUICKSORT(A, p, r)是快速排序的子程序,调用划分程序对数组进行划分,然后递归地调用QUICKSORT(A, p, r),以完
- 前言np.linalg.norm()用于求范数,linalg本意为linear(线性) + algebra(代数),norm则表示范数。用法
- <SCRIPT language="JavaScript"><!-- Beginfunction mo
- 本文转自微信公众号:"算法与编程之美"一、前言三步搭建MUI页面主框架法包括新建含mui的HTML文件、输入mheade
- 一、什么是进程进程是执行中的程序,是资源分配的最小单位:操作系统以进程为单位分配存储空间,进程拥有独立地址空间、内存、数据栈等操作系统管理所
- /*存储过程*/ sp_databases --列出服务器上的所有数据库 sp_server_info --列出服务器信息,如字符集,版本和
- 一.python读取txt文件最简单的open函数:# -*- coding: utf-8 -*-with open("test.
- 题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例:示例 1:输入: “abcabcbb”输出: 3解释: 因为无重
- 本文实例讲述了PHP简单实现正则匹配省市区的方法。分享给大家供大家参考,具体如下:省市区正则匹配preg_match('/(.*?(
- 一、引用返回引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。不要用返回引用来增加性能,引擎足够聪明来自己进行优化。仅在有合理的技
- 实战场景Python 工程师在日常的工作中,经常会碰到解析和处理PDF文件的情况,实战中需求主要分为如下情况:提取 PDF 中的文字将 PD
- 正确的安装1、先安装packagingpython3 -m pip install packaging执行这个命令后会提示这样安装成功Def
- 本文实例讲述了python回溯法实现数组全排列输出的方法。分享给大家供大家参考。具体分析如下:全排列解释:从n个不同元素中任取m(m≤n)个
- 一、excel进入密码加密算法cipher Algorithm=“AES”AES加密算法的详细介绍与
- 一、连接MySQL(和PHP搭配之最佳组合)格式: -h主机地址 -u用户名 -p用户密码例1:连接到本机上的MySQL。首先在打开DOS窗
- 绑定的值与规则指定的值一定要相同-------第一步:<el-form :model="ruleForm" :ru
- 本文实例为大家分享了Vue自定义日历插件的具体代码,供大家参考,具体内容如下由于网上的插件没有符合项目的需求决定自己实现图示如下:默认选择今
- 1.文件的读取操作文件的第一步就是得打开要操作的文件,然后进行读取文件,最后关闭文件。在python中我们可以使用open函数来打开一个文件
- 递归查询对于同一个表父子关系的计算提供了很大的方便,这个示例使用了SQL server 2005中的递归查询,使用的表是CarParts,这
- 目录1.1 题目1.2 思路1.2.1 发送请求1.2.2 解析网页1.2.3 获取结点1.2.4 数据保存 (单线程)1.2.4 数据保存