基于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使用matplotlib绘制热图
Nov 07 Python
python+PyQT实现系统桌面时钟
Jun 16 Python
Python3数字求和的实例
Feb 19 Python
Python向excel中写入数据的方法
May 05 Python
Django框架 querySet功能解析
Sep 04 Python
python Django框架实现web端分页呈现数据
Oct 31 Python
tensorflow模型继续训练 fineturn实例
Jan 21 Python
pytorch实现seq2seq时对loss进行mask的方式
Feb 18 Python
Python 改变数组类型为uint8的实现
Apr 09 Python
Python-for循环的内部机制
Jun 12 Python
Python 制作查询商品历史价格的小工具
Oct 20 Python
pycharm代码删除恢复的方法
Jun 26 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 xml文件操作实现代码(二)
2009/03/20 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
使用XHGui来测试PHP性能的教程
2015/07/03 PHP
php无法连接mysql数据库的正确解决方法
2016/07/01 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
javascript 对象的定义方法
2007/01/10 Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
2009/12/13 Javascript
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
使用javascript实现监控视频播放并打印日志
2015/01/05 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
Node.js的包详细介绍
2015/01/14 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
原生js实现对Ajax的封装(仿jquery)
2017/01/22 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
Python开发的实用计算器完整实例
2017/05/10 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
python+ffmpeg批量去视频开头的方法
2019/01/09 Python
详解python运行三种方式
2019/05/13 Python
大数据分析用java还是Python
2020/07/06 Python
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
描述RIP和OSPF区别以及特点
2015/01/17 面试题
应用心理学个人的求职信
2013/12/08 职场文书
慰问信模板
2015/02/14 职场文书
捐款通知怎么写
2015/04/24 职场文书
原告离婚代理词
2015/05/23 职场文书
2015年高三教学工作总结
2015/07/21 职场文书