基于python的docx模块处理word和WPS的docx格式文件方式


Posted in Python onFebruary 13, 2020

Python docx module for Word or WPS processing

本文是通过docx把word中的表格中的某些已填好的内容提取出来,存入excel表格。

首先安装docx的python模块:

pip install python-docx

由于处理的为中文和符号,改成utf-8编码格式

import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from docx import Document
import pandas as pd
# 打开文件
doc = Document(ur'test_1.docx')

为了处理word中以对勾形式勾选的项目,采用下面 的方法

1、十字路口 √ 2、丁字路口 3、环形路口 4、人行立交

# 取出对号勾选的项目
print doc.tables[0].rows[3].cells[2].text
print doc.tables[0].rows[3].cells[2].text.split(u'√')[1].strip().split(' ')[0][2:]
'√' in doc.tables[0].rows[3].cells[2].text # 这个语句可以测试是否含有对勾,
# 有的话就取出对勾后面的item,否则直接返回填空的text

True

num_rows = len(doc.tables[0].rows)
print num_rows

xls = pd.read_csv(ur'output.csv')

print xls.columns[0]
diction = {}
# 找到每个excel文档中需要被记录的键值在docx文档表格中的位置
for xlskey in xls.columns:
 for row_id in range(num_rows):
  row = doc.tables[0].rows[row_id]
  for cell_id in range(len(row.cells)):
   if row.cells[cell_id].text.strip() == xlskey.strip():
    diction[xlskey] = [row_id, cell_id]
# 查看一下获得的键值位置
for key in list(diction.keys()):
 print key, diction[key]

楼层数 [21, 1]

宗地形状 [4, 1]

使用权取得时间 [14, 1]

采光通风状况 [19, 1]

已使用年限 [21, 4]

建筑朝向 [7, 1]

房屋结构 [17, 1]

交叉路口形式 [3, 1]

临街状况 [8, 1]

建筑容积率 [10, 5]

楼宇名称 [15, 5]

质量等级 [18, 1]

周围土地利用类型 [11, 1]

总建筑面积 [20, 1]

宗地位置 [0, 1]

所临道路名称 [2, 1]

装修标准 [16, 1]

那么我们认为这些表头键值对应的填入数据就在他们的右边,也就是下一个cell,因此我们只需要将row id不变,cell+1,就能取出填表内容。

# 开始填表!!!
for each_column in xls.columns:
 pos = diction[each_column]
 textion = doc.tables[0].rows[pos[0]].cells[pos[1] + 1].text
 if u'√' in textion:
  this_text = textion.strip(' ').split(u'√')[1].split()[0][2:]
 else:
  this_text = textion
 xls.loc[0, each_column] = this_text

xls

楼宇名称 宗地位置 所临道路名称 交叉路口形式 宗地形状 建筑朝向 临街状况 周围土地利用类型 装修标准 房屋结构 质量等级 采光通风状况 总建筑面积 楼层数 已使用年限 建筑容积率 使用权取得时间
0 百兴花园 鄂州市鄂城区凤凰路47-11号 凤凰路 丁字路口 多边形 离街 商业用地 豪华 1、钢 2、钢、钢混 3、钢混 4、混合 5、砖木 6、其它 完好 122.7平方米 8 13年

Succeed!!!

之后只需要用一个glob函数取出所有的文档的path,然后依次执行上面的命令,即可完成word表格到excel(实际上是csv形式)的自动填表过程。

以上这篇基于python的docx模块处理word和WPS的docx格式文件方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python遍历C盘dll文件的方法
May 06 Python
浅析Python中MySQLdb的事务处理功能
Sep 21 Python
python制作企业邮箱的爆破脚本
Oct 05 Python
Python判断某个用户对某个文件的权限
Oct 13 Python
Python Pandas找到缺失值的位置方法
Apr 12 Python
pycharm安装和首次使用教程
Aug 27 Python
Tensorflow分类器项目自定义数据读入的实现
Feb 05 Python
解决python打不开文件(文件不存在)的问题
Feb 18 Python
python遍历文件目录、批量处理同类文件
Aug 31 Python
keras 获取某层输出 获取复用层的多次输出实例
May 23 Python
一篇文章弄懂Python关键字、标识符和变量
Jul 15 Python
python_tkinter事件类型详情
Mar 20 Python
python 中的[:-1]和[::-1]的具体使用
Feb 13 #Python
Python使用docx模块实现刷题功能代码
Feb 13 #Python
Tensorflow训练MNIST手写数字识别模型
Feb 13 #Python
Python3 读取Word文件方式
Feb 13 #Python
解决Python import docx出错DLL load failed的问题
Feb 13 #Python
python求最大公约数和最小公倍数的简单方法
Feb 13 #Python
python圣诞树编写实例详解
Feb 13 #Python
You might like
PHP中基本符号及使用方法
2010/03/23 PHP
PHP中strtr字符串替换用法详解
2014/11/26 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
基于js中的存储键值对以及注意事项介绍
2018/03/30 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
详解React中合并单元格的正确写法
2019/01/08 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
Python实现多线程下载文件的代码实例
2014/06/01 Python
python检测远程服务器tcp端口的方法
2015/03/14 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
Python数据可视化:箱线图多种库画法
2019/11/06 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
css3使网页、图片变成灰色兼容大多数浏览器
2014/07/02 HTML / CSS
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
白岩松演讲
2014/05/21 职场文书
先进工作者事迹材料
2014/12/23 职场文书
大学生个人学习总结
2015/02/15 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
律师催款函范文
2015/06/24 职场文书
学风建设主题班会
2015/08/17 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
浅析Python OpenCV三种滤镜效果
2022/04/11 Python
Python进程间的通信之语法学习
2022/04/11 Python