Python自动批量Word数据到Excel
蚂蚁学Python
共 2172字,需浏览 5分钟
· 2021-07-29
## 问题背景
我有很多个Word文件:
里面的每个word文件中,都有数据表格
怎样把批量的word文件的表格数据提取出来,放到excel中呢
## 导入代码包
用到了python-docs这个库,需要自己安装
# pip install python-docx
from docx import Document
import pandas as pd
import os
## 编写解析函数
注意,当做一个普通的table解析即可,用cell(row, col)读取确定单元格的内容文本。
def parse_docfile(doc_file):
doc = Document(doc_file)
table = doc.tables[0]
return dict(
table.cell(0, 1).text, 性别 = table.cell(0, 3).text, =
table.cell(0, 5).text, 出生年月 = table.cell(0, 7).text, =
table.cell(1, 1).text, 学历 = table.cell(1, 3).text, =
table.cell(1, 5).text, 政治面貌 = table.cell(1, 7).text, =
table.cell(2, 1).text, 专业 = table.cell(2, 4).text, =
table.cell(2, 7).text, =
table.cell(3, 1).text, 报考类别 = table.cell(3, 7).text, =
table.cell(4, 1).text.strip(), =
table.cell(5, 1).text.strip(), =
table.cell(6, 1).text.strip(), =
table.cell(7, 1).text.strip(), =
)
## 单个word的测试
parse_docfile("优秀教师选拔考试报名表/优秀教师选拔考试报名表(刘备).docx")
输出结果为:
{'姓名': '刘备',
'性别': '男',
'民族': '汉',
'出生年月': '1956.11',
'参加工作时间': '1975.7',
'学历': '本科',
'籍贯': '成都',
'政治面貌': '蜀汉',
'毕业院校': '成都大学',
'专业': '体育',
'职务': '大将军',
'工作单位': '成都第一中学',
'报考类别': '语文',
'工作简历': '从简',
'工作业绩': '优秀',
'单位推荐意见': '同意',
'领导意见': '同意'}
## 结合os模块,做批量解析
初始化结果数据结构
# 列名
columns = None
# 数据内容
datas = []
实现for循环解析
for file in os.listdir("优秀教师选拔考试报名表"):
if file.endswith(".docx"):
file_path = f"优秀教师选拔考试报名表/{file}"
print("解析文件", file_path)
data = parse_docfile(file_path)
if not columns:
columns = list(data.keys())
datas.append([data[column] for column in columns])
程序输出结果为:
解析文件 优秀教师选拔考试报名表/优秀教师选拔考试报名表(张飞).docx
解析文件 优秀教师选拔考试报名表/优秀教师选拔考试报名表(周瑜).docx
解析文件 优秀教师选拔考试报名表/优秀教师选拔考试报名表(曹操).docx
解析文件 优秀教师选拔考试报名表/优秀教师选拔考试报名表(小乔).docx
解析文件 优秀教师选拔考试报名表/优秀教师选拔考试报名表(曹植).docx
解析文件 优秀教师选拔考试报名表/优秀教师选拔考试报名表(刘备).docx
## 使用pandas输出到excel文件
df = pd.DataFrame(datas, columns = columns)
df.to_excel("优秀教师选拔考试报名表.xlsx", index=False)
查看结果excel文件:
## 本代码的视频讲解
谢谢,如果对你帮助,点个赞呀!
评论
金融研究 | 使用Python测量关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
金融研究(更新) | 使用Python构建关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
多人同时导出 Excel 干崩服务器!新来的阿里大佬给出的解决方案太优雅了!
点击关注公众号,Java 干货及时推送↓推荐阅读:面试辅导,我们出大成果了!来源:juejin.cn/post/7259249904777838629前言 业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,
Java技术栈
1
谷歌员工爆料Python基础团队原地解散
机器之心报道编辑:蛋酱什么?谷歌解雇了整个 Python 基础团队?「当与你直接共事的每个人,包括你的主管,都被裁员 —— 哦,是职位被削减,而你被要求安排他们的替代者入职,这些人被告知在不同的国家担任同样的职位,但他们并不为此感到高兴,这是很艰难的一天。」发布这一动态的 Thomas Wouter
机器学习初学者
0
了解加密货币到加密货币的互换
1、什么是加密货币互换?加密货币到加密货币的互换是指以现行市场汇率将一种加密货币直接兑换为另一种加密货币。与需要法定货币存款和较长流程的传统交易所不同,加密货币到加密货币的互换可以无缝地促进交换。掉期在提高加密货币的流动性和效率方面发挥着重要作用。该功能使用户能够将他们的加密货币与钱包中的其他代币进
区块链头条
0
【Python】coverage,一个有趣的 Python 库!
大家好,今天为大家分享一个有趣的 Python 库 - coveragepy。Github地址:https://github.com/nedbat/coveragepy在软件开发中,测试是确保代码质量和稳定性的关键步骤之一。而代码覆盖率则是衡量测试覆盖代码的程度的重要指标之一。Python cove
机器学习初学者
0
【Python】Python加速运行技巧
Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足。但是,有很多时候,Python 的效率并没有想象中的那么夸张。本文对一些 Python 代码加速运行的技巧进行整理。 0. 代码优化原则 本文会介绍不少的 Python 代码加速运行的技巧。在深入代码优化细
机器学习初学者
0
21.3K star!推荐一款可视化自动化测试/爬虫/数据采集神器!功能免费且强大!
【温馨提示】由于公众号更改了推送规则,不再按照时间顺序排列,如果不想错过测试开发技术精心准备的的干货文章,请将测试开发技术设为“星标☆”,看完文章在文尾处点亮“在看”!大家好,我是狂师!在大数据时代,信息的获取与分析变得尤为重要。对于开发者、数据分析师乃至非技术人员来说,能够高效地采集网络数据并进行
测试开发技术
4