基于Python获取docx/doc文件内容代码解析


Posted in Python onFebruary 17, 2020

这篇文章主要介绍了基于Python获取docx/doc文件内容代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

整体思路:

下载文件并修改后缀为zip文件,解压zip文件,所要获取的内容在固定的文件夹下:work/temp/word/document.xml

所用包,全部是python自带,不需要额外下载安装.

# encoding:utf-8
import os
import re
import requests
import zipfile
import xml.dom.minidom

newfile = 'test.docx'


def create(newfile):
  """下载docx文件,并修改后缀为zip"""
  res = requests.get('https://www.cqjbfy.gov.cn/publiccenter/splc/mb/splc_gginfo.asp?newsid=28949')

  if not os.path.exists(newfile):
    f = open(newfile, 'wb')
    for chunk in res.iter_content(100000):
      f.write(chunk)
    f.close()

  os.rename(newfile, 'test.zip')  这种方法发现只能解决一部分doc文件,具体原因不得而知,有明白的欢迎留言
  # 将doc/docx文件压缩成zip文件
  #pf = zipfile.ZipFile('test.zip', 'w', zipfile.ZIP_STORED) 
  #pf.write(newfile)

def get_txt():
  """解压zip,并在work/temp/word/document.xml获取文本内容,进行正则替换标签等操作"""
  f = zipfile.ZipFile('test.zip', 'r')
  for file in f.namelist():
    f.extract(file, "temp/")
  
  f = xml.dom.minidom.parse('./temp/word/document.xml')
  
  txt = re.sub(r'</w:t></w:r></w:p>', '\n', f.toxml())
  print re.sub(r'<.*?>', '', txt)

if __name__ == '__main__':
  create(newfile)
  get_txt()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
为Python的web框架编写前端模版的教程
Apr 30 Python
python实现二分查找算法
Sep 21 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
Sep 04 Python
Python补齐字符串长度的实例
Nov 15 Python
配置 Pycharm 默认 Test runner 的图文教程
Nov 30 Python
Python编程flask使用页面模版的方法
Dec 28 Python
PyQt5+requests实现车票查询工具
Jan 21 Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 Python
python for 循环获取index索引的方法
Feb 01 Python
利用python脚本如何简化jar操作命令
Feb 24 Python
基于python实现操作git过程代码解析
Jul 27 Python
pycharm中leetcode插件使用图文详解
Dec 07 Python
Python多线程获取返回值代码实例
Feb 17 #Python
Python实现ATM系统
Feb 17 #Python
python设置环境变量的作用整理
Feb 17 #Python
python数据爬下来保存的位置
Feb 17 #Python
使用TFRecord存取多个数据案例
Feb 17 #Python
从多个tfrecord文件中无限读取文件的例子
Feb 17 #Python
Python3连接Mysql8.0遇到的问题及处理步骤
Feb 17 #Python
You might like
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
WordPress分页伪静态加html后缀
2016/06/08 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
php取出数组单个值的方法
2018/03/12 PHP
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
JavaScript限定复选框的选择个数示例代码
2013/08/25 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
前端性能优化及技巧
2016/05/06 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
2016/05/31 Javascript
老生常谈jacascript DOM节点获取
2017/04/17 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
2017/05/02 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
在Vue组件化中利用axios处理ajax请求的使用方法
2017/08/25 Javascript
详解node.js中的npm和webpack配置方法
2018/01/21 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
angular实现input输入监听的示例
2018/08/31 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
ElementUI 修改默认样式的几种办法(小结)
2020/07/29 Javascript
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
Python实现数据库编程方法详解
2015/06/09 Python
Python实现统计文本文件字数的方法
2017/05/05 Python
python对html过滤处理的方法
2018/10/21 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
2020/12/23 Python
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
党员创先争优承诺书
2014/03/26 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
小学总务工作总结
2015/08/13 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js