基于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实现在Linux系统下更改当前进程运行用户
Feb 04 Python
Python中处理时间的几种方法小结
Apr 09 Python
在类Unix系统上开始Python3编程入门
Aug 20 Python
Python脚本实现12306火车票查询系统
Sep 30 Python
利用python微信库itchat实现微信自动回复功能
May 18 Python
详解python函数传参是传值还是传引用
Jan 16 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
详解python中list的使用
Mar 15 Python
决策树剪枝算法的python实现方法详解
Sep 18 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
May 28 Python
解决Keras 中加入lambda层无法正常载入模型问题
Jun 16 Python
python海龟绘图之画国旗实例代码
Nov 11 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
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
基于php编程规范(详解)
2017/08/17 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
使用jquery自定义鼠标样式满足个性需求
2013/11/05 Javascript
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
JavaScript中的时间处理小结
2016/02/24 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
2016/10/30 Javascript
基于javascript实现按圆形排列DIV元素(三)
2016/12/02 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
jquery实现左右轮播图效果
2017/09/28 jQuery
vue路由--网站导航功能详解
2019/03/29 Javascript
node.js中事件触发器events的使用方法实例分析
2019/11/23 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
JS实现简易留言板特效
2019/12/23 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
在Python的Django框架中创建语言文件
2015/07/27 Python
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
2018/02/08 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
英国最大的奢侈品零售网络商城:Flannels
2016/09/16 全球购物
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
营业经理岗位职责
2013/11/10 职场文书
幼儿园大班新学期寄语
2014/01/18 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书
2014年企业党支部工作总结
2014/12/04 职场文书
教代会闭幕词
2015/01/28 职场文书
初中数学课堂教学反思
2016/02/17 职场文书