基于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登录QQ邮箱发信的实现代码
Feb 10 Python
在Python中使用lambda高效操作列表的教程
Apr 24 Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
tensorflow实现逻辑回归模型
Sep 08 Python
python3使用matplotlib绘制散点图
Mar 19 Python
logging level级别介绍
Feb 21 Python
Python读取文件内容为字符串的方法(多种方法详解)
Mar 04 Python
pandas DataFrame运算的实现
Jun 14 Python
对python中list的五种查找方法说明
Jul 13 Python
Python设计密码强度校验程序
Jul 30 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
Feb 01 Python
有趣的二维码:使用MyQR和qrcode来制作二维码
May 10 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中操作ini配置文件的方法
2013/04/25 PHP
Linux下安装oracle客户端并配置php5.3
2014/10/12 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
vue+vant实现购物车全选和反选功能
2020/11/17 Vue.js
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
python爬虫爬取某站上海租房图片
2018/02/04 Python
Python常见MongoDB数据库操作实例总结
2018/07/24 Python
Python中GeoJson和bokeh-1的使用讲解
2019/01/03 Python
Python GUI编程完整示例
2019/04/04 Python
python实现FTP循环上传文件
2020/03/20 Python
使用Python将图片转正方形的两种方法实例代码详解
2020/04/29 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
金融专业个人的自我评价
2013/10/18 职场文书
大学生学习自我评价
2014/01/13 职场文书
酒店端午节促销方案
2014/02/18 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
本科生求职信
2014/06/17 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android
python通过新建环境安装tfx的问题
2022/05/20 Python