主要两块,第一个是文件类型的转换,第二个是用docx包去对word文档中的table进行parse

1. 文件格式装换

因为很多各种各样的原因,至今还有一些word文档是doc的格式存的,对于这种,如果我们想用python对这个word文档中的内容进行解析的话,理论上必须要处理成docx先。

如果你刚好是个mac的用户,那你可以不用弄了,因为如果你用python+osx的系统,这个就是个无解的事情,可以考虑下用java之类的方式处理。但是幸运的是我找了一台机器是win系统的,然后我就处理了,代码如下:

importosfrom win32com importclientdefdoc_to_docx(path):if os.path.splitext(path)[1] == ".doc":

word= client.Dispatch('Word.Application')

doc= word.Documents.Open(path) #目标路径下的文件

doc.SaveAs(os.path.splitext(path)[0] + ".docx", 16) #转化后路径下的文件

doc.Close()

word.Quit()def find_file(path, ext, file_list=[]):

dir=os.listdir(path)for i indir:

i=os.path.join(path, i)ifos.path.isdir(i):

find_file(i, ext, file_list)else:if ext == os.path.splitext(i)[1]:

file_list.append(i)returnfile_listif __name__ == "__main__":

dir_path= "E:\yschen3\pyprogram\线下二维码活动"ext= ".doc"file_list=find_file(dir_path, ext)for file infile_list:

doc_to_docx(file)print(file)

大概就是这样,用了个win32com这个包,非常容易,接下来,我们就可以用python-docx来处理了

2. 表格的处理

这里python有个包教python-dox,就是专门做这个事情的,他可以对段落,表格进行解析和处理。大概说下逻辑

1. 会读出所有的表格

2. 然后对表格里面的行,一行一行的读

3. 真对一行,就是一个格子一个格子的读

这里对于合并处理的单元格,默认的逻辑是,分成两个,写出相同的内容,保持表格维度的一致性,当然这里可以看你的需求,你可以在读取的过程中,做一次简单的去重过滤。

这里代码在这里:

importosfrom win32com importclientdefdoc_to_docx(path):if os.path.splitext(path)[1] == ".doc":

word= client.Dispatch('Word.Application')

doc= word.Documents.Open(path) #目标路径下的文件

doc.SaveAs(os.path.splitext(path)[0] + ".docx", 16) #转化后路径下的文件

doc.Close()

word.Quit()def find_file(path, ext, file_list=[]):

dir=os.listdir(path)for i indir:

i=os.path.join(path, i)ifos.path.isdir(i):

find_file(i, ext, file_list)else:if ext == os.path.splitext(i)[1]:

file_list.append(i)returnfile_listif __name__ == "__main__":

dir_path= "E:\yschen3\pyprogram\线下二维码活动"ext= ".doc"file_list=find_file(dir_path, ext)for file infile_list:

doc_to_docx(file)print(file)

python解析word_word文档的python解析相关推荐

  1. python书籍pdf文档密码-Python玩转PDF的各种骚操作

    Portable Document Format(可移植文档格式),或者PDF是一种文件格式,可以用于跨操作系统的呈现和文档交换.尽管PDF最初是由Adobe发明的,但它现在是由国际标准化组织(ISO ...

  2. python怎么处理文档_7.python文件的处理方式

    一.文件操作方式 1.打开操作 open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True, ...

  3. Python爬虫 —— 使用BeautifulSoup4解析HTML文档

    Python爬虫 -- 使用BeautifulSoup4解析HTML文档 目录 Python爬虫 -- 使用BeautifulSoup4解析HTML文档 1.BeautifulSoup4简介 1.1 ...

  4. C#解析Markdown文档,实现替换图片链接操作

    前言 又是好久没写博客了 其实也不是没写,是最近在「做一个博客」,从2月21日开始,大概一个多星期的时间,疯狂刷进度,边写代码边写了一整系列的博客开发笔记,目前为止已经写了16篇了,然后上3月之后工作 ...

  5. Dom4j 解析Xml文档及 XPath查询 学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" ...

  6. python使用微信设置-微信 python 接口 -- itchat 文档

    itchat 一. 安装 $ pip install itchat 特殊的字典使用方式 通过打印 itchat 的用户以及注册消息的参数, 可以发现这些值都是字典. 但实际上 itchat 精心构造了 ...

  7. python——读取docx文档wordcloud生成词云并进行词频统计

    文章目录 环境准备 导入库 读取docx并进行分词 词频 词云 设置背景图片(可选) 生成词云 保存词云并显示 环境准备 # 不是docx,是python-docx!!!!!!! pip instal ...

  8. 用Python提取解析pdf文档中内容

    用Python提取解析pdf文档中内容 文章目录: 参考: 1.https://blog.csdn.net/tmaczt/article/details/82876018 # Tika库 2.http ...

  9. python下载图片到文件夹_python实现解析markdown文档中的图片,并且保存到本地~

    背景 前阵子简书好像说是凉了,搞得我有点小慌,毕竟我的大部分博客都是放在简书上面的,虽然简书提供了打包导出功能,但是只能导出文字,图片的话还是存在简书服务器上面,再加上我一直想要重新做一个个人博客,于 ...

最新文章

  1. Android中获取系统语言(适用于Android7.0以上系统)
  2. 软件测试白皮书-判定表法
  3. 非常有用的并发控制-循环栅栏CyclicBarrier
  4. Eclipse: select at least one project
  5. 【算法系列之十三】二叉树两叶节点的最大距离
  6. Android笔记 theme主题
  7. yolo之---非极大值抑制
  8. 阿里云自带的mysql_阿里云自带mysql
  9. ExtJS学习之EditorGridPanel
  10. AE2022 for Mac安装包+安装教程
  11. 常见基础注入类型-SQL注入-web安全
  12. .Net Core快速开发平台源码 敏捷开发框架OA系统 CRM快速开发框架
  13. 快消品企业营销费用管理的困惑
  14. Teamcenter服务器未响应,TeamCenter9.1常见问题.pdf
  15. js中时间戳转化为具体的年月日
  16. 高/低压供配电系统设计——安科瑞变电站电力监控系统的应用
  17. Linux开源镜像地址下载
  18. Islands and bridges
  19. TensorFlow.js 和 Node-RED 图像识别应用程序
  20. 探究MaxxBass音效

热门文章

  1. Oracle学习笔记之一,重温范式
  2. 存储过程和SQL语句比较【转】
  3. JS级别联动下拉列表
  4. 亏损63亿,美图真能“美”到上市?
  5. 产品中的实名认证该怎么设计?
  6. Windows 下使用 BaiduExporter + Aria2 下载百度网盘文件
  7. 【转载】天际网-Viadeo集团宣布收购移动商务社交应用“在这儿”
  8. 微软雷德蒙德和伦敦地区掀起新一轮裁员 涉及数百人
  9. [转载]动态规划之0-1背包问题
  10. Unity运行时检测Altas使用情况