前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python-docx无法处理 “doc格式” 文件,于是我这样做......

python-docx无法处理 “doc格式” 文件,于是我这样做......

作者头像
Python进阶者
发布2021-03-09 11:47:40
2.5K0
发布2021-03-09 11:47:40
举报
文章被收录于专栏:Python爬虫与数据挖掘

问题引入

目前的日常工作中,见的最多的还是对Excel文件和 Word文件的处理。对于Excel文件,如果出现xls、xlsx、xlsm混合文件应该怎么处理?对于Word文件,出现doc和docx的混合文件,又该怎么处理。

你可能会用VBA,但是不得不说,批量操作这些文件,还是要学Python,操作真的很简单。

为了增强文章的可读性,我们分2篇文章讲述这些问题。今天,我们讲述的是如何将doc文件 转换为 docx文件。

学了黄同学的原创《Python自动化办公文档》后,你可能知道:我们常用python-docx来处理Word文件。但是,python-docx只能处理“.docx”的Word文件。因此,咱们需要批量将“.doc”文件,批量转换为“.docx”文件后,再进行二次处理。

近日,就有一个女同事让我批量处理一下Word中的内容。这还是头一次处理这样的问题,为了解决这个问题,我只能:① 批量将doc文件,转换为docx文件;② 使用python-docx库,批量处理docx文件。

将doc文件,转换为docx文件

python-docx库,如何处理docx文件,我们的文档中已经为大家进行了详细的解释。今天黄同学就教大家写一段代码,实现这个doc文件转换为docx文件操作。

1)安装win32com库

这里需要做一个说明,如果采用以下方式,无法安装的话。

代码语言:javascript
复制
pip install win32com

那么,就采用下面这个方法进行安装。

代码语言:javascript
复制
python -m pip install pypiwin32

2)win32com库相关语法的说明

这里我们没有什么太高深的代码,只是有些代码怕大家看不懂,因此给大家做一个说明。

代码语言:javascript
复制
# 调用word程序
WordApp = win32com.client.Dispatch("Word.Application")

# 后台运行,不显示,不警告
WordApp.Visible = 0
WordApp.DisplayAlerts = 0

3)完整代码

这里我们采用“面向过程”的方式,去写这个代码,这样会让代码可读性更强。

代码语言:javascript
复制
import os
import time
import win32com
from win32com.client import Dispatch

def doc_to_docx(path):
   w = win32com.client.Dispatch('Word.Application')
   w.Visible = 0
   w.DisplayAlerts = 0
   doc = w.Documents.Open(path)
   # 这里必须要绝对地址,保持和doc路径一致
   newpath = allpath+'\\转换后的文档.docx'
   time.sleep(3) # 暂停3s,否则会出现-2147352567,错误
   doc.SaveAs(newpath,12,False,"",True,"",False,False,False,False)
   # doc.Close() 开启则会删掉原来的doc
   w.Quit()# 退出
   return newpath
allpath = os.getcwd()
print(allpath)
doc_to_docx(allpath+'\\转换前的文档.doc')

最终效果:

------------------- End -------------------

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫与数据挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题引入
  • 将doc文件,转换为docx文件
    • 1)安装win32com库
      • 2)win32com库相关语法的说明
        • 3)完整代码
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档