python中有python-docx及pypiwin32模块处理docx文件,python-docx模块跨平台性好,但是只能解析.docx文件,不能解析.doc文件,其可以按照段落读取word。pypiwin32模块可以处理.doc及.docx文件,但是仅限windows平台,它还可以将.doc文件转化为.docx文件,然后使用python-docx模块进行处理。

download_document.py

将网上的doc文件下载到本地,使用pypiwin32模块将其转化为docx文件

import osimport requests
import win32com.client as wc
from parse_docx import *url = "http://www.bjshy.gov.cn/ggzyjy/u/cms/com.ggzyjy.www/202110/14180513poiq.doc"file_name = url.split('/')
# print("file_name=",file_name[-1])# #拼接下载文件的路径,并将响应内容写入本地文件
download_file_path = os.path.join(DOC_DIR,file_name[-1])
response = requests.get(url)
with open(download_file_path,'wb') as f:f.write(response.content)#获取doc文件路径并将其转为docx文件存到本地
for file in os.listdir(DOC_DIR):if file.endswith('.doc'):print("file=",file)#拼接转化为docx文件的文件名称file_name = file.split('.')[0]print("file_name=", file_name)name = file_name + ".docx"doc_file_path = os.path.join(DOC_DIR,file)print("doc_file_path=",doc_file_path)#doc文件另存为docx文件处理word = wc.Dispatch("Word.Application")doc = word.Documents.Open(doc_file_path)# print("doc=",doc)   #doc= 14180513poiq.doc# print("type(doc)=",type(doc))   #type(doc)= <class 'win32com.client.CDispatch'>#拼接docx文件保存的本地路径docx_file_path = os.path.join(DOCX_DIR,name)doc.SaveAs(docx_file_path,12)doc.Close()word.Quit()

parse_docx.py

#解析本地docx文件中的内容,输出每个段落及表格中的内容

import os
import docx
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
print("BASE_DIR=",BASE_DIR)DOC_DIR = os.path.join(BASE_DIR,'doc')DOCX_DIR = os.path.join(DOC_DIR,'docx')FILE1_DIR = os.path.join(DOC_DIR,'file1')
print("FILE1_DIR=",FILE1_DIR)def get_file_name(file_dir):for root,dirs,files in os.walk(file_dir):print("root=",root)print("dirs=",dirs)print("files=",files)  #files= ['xxx.docx']return files[0]if __name__ == "__main__":file_name = get_file_name(FILE1_DIR)print("file_name=", file_name)file1_path = os.path.join(FILE1_DIR, file_name)print("file1_path", file1_path)file_content = docx.Document(file1_path)print("file_content=", file_content)#读取word文档中段落的内容for p in file_content.paragraphs:print("p.text=", p.text)#读取word文档中表格中的内容for table in file_content.tables:print("table=",table)for row in table.rows:for cell in row.cells:print("cell.text=",cell.text)#方法二# for table in file_content.tables:#     print("table=",table)#     #行列个数#     row_count = len(table.rows)#     col_count = len(table.columns)#     print("row_count=",row_count)#     print("col_count=",col_count)#     for i in range(row_count):#         for j in range(col_count):#             print("cell.text=",table.cell(i, j).text)

使用python-docx模块解析docx文档相关推荐

  1. python之HTMLParser解析HTML文档

    HTMLParser是Python自带的模块,使用简单,能够很容易的实现HTML文件的分析. 本文主要简单讲一下HTMLParser的用法. 使用时需要定义一个从类HTMLParser继承的类,重定义 ...

  2. python安装模块(官网文档)

    https://docs.python.org/zh-cn/3/tutorial/venv.html# https://packaging.python.org/tutorials/installin ...

  3. python 如何查看模块所有方法-Python 查看模块的帮助文档,方法和帮助信息

    参考链接:https://blog.csdn.net/u013810296/article/details/55509284 这里介绍下python自带的查看帮助功能,可以在编程时不中断地迅速找到所需 ...

  4. python 查看已经安装的模块_教你用Python查看模块的帮助文档,方法和帮助信息...

    这里介绍下python自带的查看帮助功能,可以在编程时不中断地迅速找到所需模块和函数的使用方法 查看方法 通用帮助函数help() python中的help()类似unix中的man指令,熟悉后会对我 ...

  5. 使用python,xlwing模块解决excel文档加密

    废话不多说,直接上代码 import xlwingsapp = xlwings.App() app.visible = False ex = app.books.open("ceshi.xl ...

  6. C#解析Markdown文档,实现替换图片链接操作

    前言 又是好久没写博客了 其实也不是没写,是最近在「做一个博客」,从2月21日开始,大概一个多星期的时间,疯狂刷进度,边写代码边写了一整系列的博客开发笔记,目前为止已经写了16篇了,然后上3月之后工作 ...

  7. python 解析html 模块_使用 Python 模块—— HTMLParser 解析 HTML 文档元素

    标签: 这个文档定义了一个 HTMLParser 类作为解析 HTML 文档的基础. HTMLParser 类的实例可以存储并调用方法来处理 HTML 标签和数据. 我们一般通过建立一个 HTMLPa ...

  8. python中docx模块的使用_python使用docx模块读写docx文件的方法与docx模块常用方法详解...

    一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就是说python-docx模块会把word文档,文档中的段落.文本.字体等都看做对象,对对象 ...

  9. python使用docx模块读写docx文件的方法与docx模块常用方法

    一,docx模块 python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就是说python-docx模块会把word文档,文档中的段落.文本.字体等都看做对象,对对象 ...

  10. python下载图片到文件夹_python实现解析markdown文档中的图片,并且保存到本地~

    背景 前阵子简书好像说是凉了,搞得我有点小慌,毕竟我的大部分博客都是放在简书上面的,虽然简书提供了打包导出功能,但是只能导出文字,图片的话还是存在简书服务器上面,再加上我一直想要重新做一个个人博客,于 ...

最新文章

  1. 【深度学习】CornerNet: 将目标检测问题视作关键点检测与配对
  2. 【Hibernate】Hibernate系列6之HQL查询
  3. LeetCode 2090. 半径为 k 的子数组平均值(滑窗)
  4. 随想录(上位机客户端的编写)
  5. asp.net控件开发基础二
  6. 2. wordpress 友情链接的备份和导入
  7. Python+Selenium+Edge浏览器安装与简单运行(1/2)
  8. 如何实现Windows Network所有会话的限制登录和访问控制
  9. linux系统下载r软件安装,Linux安装R语言包
  10. 计算机输入码分类,汉字输入码种类数字编码.ppt
  11. 推荐5款常用编程文本编辑器
  12. latex表格过长的解决办法之一:缩小字体
  13. Excel_文本转数值型
  14. mac电脑如何快速清除excel表格中的空白行
  15. 【基础】存储过程IN、OUT、INOUT参数模式
  16. 怎样使用更新域计算机,如何使用Word快捷键来输入当前时间和更新时间域?
  17. Linux上安装和卸载Redis实例教程
  18. 语言与区域设置ID (Language ID、Locales ID / LCID)
  19. 杂事记诗-- 读网文《穷鬼的上下两千年》有感
  20. C++OO部分知识小结(1)

热门文章

  1. 计算机无法备份,iTunes无法备份是怎么回事?iTunes无法备份怎么解决?
  2. 无损更换系统固态硬盘(系统盘克隆)
  3. 比较两组数据的差异用什么图更直观_第四节 单因素完全随机实验设计及数据处理...
  4. Excel 公式CORREL算出相关系数
  5. 使用matlab制作电子签名
  6. 【优化求解】基于粒子群算法求解仓库成本控制优化问题含Matlab源码
  7. Uniapp Android原生插件开发
  8. linux下oracle imp,oracle中imp命令Linux下使用
  9. 恩智浦(飞思卡尔)智能车舵机和电机PID控制
  10. Linux搭建测试环境步骤