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

 更新时间:2020年02月13日 11:29:05   作者:江户川柯壮  
今天小编就为大家分享一篇基于python的docx模块处理word和WPS的docx格式文件方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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 pandas模糊匹配 读取Excel后 获取指定指标的操作

    python pandas模糊匹配 读取Excel后 获取指定指标的操作

    这篇文章主要介绍了python pandas模糊匹配 读取Excel后 获取指定指标的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 修复Python缩进错误的方法实现

    修复Python缩进错误的方法实现

    在Python中,缩进是非常重要的,因为它决定了代码块的层次结构,本文主要介绍了修复Python缩进错误的方法实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • python实现字符串加密 生成唯一固定长度字符串

    python实现字符串加密 生成唯一固定长度字符串

    这篇文章主要为大家详细介绍了python实现字符串加密,生成唯一固定长度字符串,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • python打包为linux可执行文件的详细图文教程

    python打包为linux可执行文件的详细图文教程

    这篇文章主要给大家介绍了关于python打包为linux可执行文件的详细图文教程,本文介绍的方法可以轻松地将Python代码变成独立的可执行文件,需要的朋友可以参考下
    2024-02-02
  • Python获取指定日期是"星期几"的6种方法

    Python获取指定日期是"星期几"的6种方法

    在Python进行数据分析时,按照日期进行分组汇总也是被需要的,比如会找到销量的周期性规律。本文将以2022-02-22为例,演示Python获取指定日期是“星期几”的6种方法,需要的可以参考一下
    2022-03-03
  • Python操作Jira库常用方法解析

    Python操作Jira库常用方法解析

    这篇文章主要介绍了Python操作Jira库常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 如何利用python实现图片批处理

    如何利用python实现图片批处理

    这篇文章主要给大家介绍了关于如何利用python实现图片批处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python Collections库的高级功能使用示例详解

    Python Collections库的高级功能使用示例详解

    Python的collections库提供了一系列有用的数据类型,扩展了内建的数据类型,为开发者提供了更多高级功能,本文将深入探讨collections库的一些高级功能,通过详细的示例代码演示,帮助大家更好地理解和应用这些功能
    2023-12-12
  • Python中使用Queue和Condition进行线程同步的方法

    Python中使用Queue和Condition进行线程同步的方法

    这篇文章主要介绍了Python中使用Queue模块和Condition对象进行线程同步的方法,配合threading模块下的线程编程进行操作的实例,需要的朋友可以参考下
    2016-01-01
  • windows上彻底删除jupyter notebook的实现

    windows上彻底删除jupyter notebook的实现

    这篇文章主要介绍了windows上彻底删除jupyter notebook的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04

最新评论