基于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 PIL模块与随机生成中文验证码
Feb 27 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
Jun 29 Python
Python实现的计数排序算法示例
Nov 29 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
Jul 02 Python
Python地图绘制实操详解
Mar 04 Python
PyCharm更改字体和界面样式的方法步骤
Sep 27 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
Python递归调用实现数字累加的代码
Feb 25 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 Python
python em算法的实现
Oct 03 Python
PyTorch 如何设置随机数种子使结果可复现
May 12 Python
python基础入门之普通操作与函数(三)
Jun 13 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短域名转换为实际域名函数
2011/01/17 PHP
浅谈PHP进程管理
2019/03/08 PHP
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
javascript实现禁止右键和F12查看源代码
2014/12/26 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
jQuery EasyUI 入门必看
2016/06/03 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
CentOS环境中MySQL修改root密码方法
2018/01/07 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
遗传算法python版
2018/03/19 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
党风廉设责任书
2014/04/16 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
围城读书笔记
2015/06/26 职场文书
2016新春团拜会致辞
2015/08/01 职场文书
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android