❤希望通过Python编程,替代你去做耗时耗力耗心的事情。

让你在烦忙的学习生活中,给自己一些和自己相处的时间,

也给自己一些和家人在一起的时间❤

win32com模块实现批量.doc转.docx

本节课,小编带大家借助Python中的win32com模块,实现文件类型转换问题。话不多说,一起进入今天的知识小分享!



01 - 案例功能描述

给定目录,存储所有从网上下载文件,现要求:

  1. 找到给定目录下所有.doc文件,包含子目录

  2. 批量操作将这些文件转成.docx结尾文件

话不多说,一起来看看效果吧!



02 - 创建.py文件

在当前文件夹下创建.py文件,具体如下:


03 - 案例实现步骤

  实现的基本步骤,如下:

step1导入相关模块库。

step2找到给定目录下所有.doc文件。

step3:打开Word应用程序。

step4将每个.doc文件转成.docx。

step5查看结果。



04 - 编写功能代码

相关的部分核心代码如下:

#第一部分:查找指定目录下所有的.doc结尾的文件def get_doc_files(path):    #判断路径合法性    if not os.path.exists(path):        print(path + "路径不存在,请核实!")        sys.exit()    #列表,用于存放所有的.doc格式的文件    all_doc_files = []    #通过遍历目录树形式,找到给定文件夹下所有.doc文件并放到列表中    for foldername, subfolders, filenames in os.walk(path):        print(filenames)        for file in filenames:            #获取".doc"后缀的word文件            if file.endswith(".doc"):                #print(file)                all_doc_files.append(os.path.join(foldername, file))    return all_doc_files#第二部分:将所有以.doc结尾的文件另存成.docx的def convert_to_docx(all_files):    '''将所有以.doc结尾的文件另存成.docx'''    #打开word应用程序    word_app = win32com.client.Dispatch("Word.Application")    #遍历所有的.doc文件,依次转成.docx格式的    for file in all_files:        #打开word文件        doc_file = word_app.Documents.Open(file)        #另存为后缀为".docx"的文件,其中参数12指docx文件        doc_file.SaveAs("{}x".format(file), 12)        print("正在转换中...")        #关闭原来word文件        doc_file.Close()    print("全部转换成功!")    #最后退出整个的Word程序    word_app.Quit()'''测试程序'''#准备路径path = "D:\\Programs\\Python图解\\批量操作word\\将给定目录下所有doc转成.docx\\我的下载"all_files = get_doc_files(path)convert_to_docx(all_files)

05 - 运行效果

点击观看效果:


06 - 知识说明及扩展

  • 开始编码之前,应先安装win32模块。

  • 将来,还可以将word文件转成其它格式的。比如:.txt,.png,.xlsx类型的等等。基本的步骤和转成.docx是类似的,只不过在调用SaveAs()时,给定的那个数字是一样。.docx对应的是12。

  • 其它的每种类型对应的数字,请参见下图:


如:将一个.doc文件转成.txt,代码如下

import win32comimport win32com.client#打开整个word程序word = win32com.client.Dispatch("Word.Application")# txt_path = "D:\\Programs\\Python图解\\批量操作word\\doc1.docx"txt_path = "D:\\Programs\\Python图解\\批量操作word\\doc1.docx"#加载要转换的那个文件到内存txt_file = word.Documents.Open(txt_path)#调用SaveAs()指令,存为".txt"的文件,其中2表示文本文件txt_file.SaveAs("doc1.txt", 2)print("正在转换中...")#关闭原来word文件txt_file.Close()#最后退出整个的Word程序word.Quit()

点击查看运行效果:



今天要和大家分享的内容就是这些,希望能帮助到您!





人与计算机最大的区别是:人有思想、懂感情,是一个不断学习进化的品种,并且大部分人都希望通过自己的努力,让自己和爱的人生活的更好。在这样一个被炒的铺天盖地的智能化时代,看到时代左右的人,才不会被时代所左右。


来自:留给沿海地带,微信号:lml108


达内 Python办公自动化,给你的生活“加点料”!

点击即刻免费试听课程,无需注册登陆任何帐号。

网址:http://www.tmooc.cn/course/302822.shtml

poi doc转docx_文件批量操作之.doc转成.docx相关推荐

  1. 服务器导出word文档中有乱码,使用Aspose.word DOC转PDF文件乱码问题-Doc文件

    描述:最近在项目中使用Aspose.word将word转pdf时出现中文乱码问题,在window平台下转换没有问题,中文也不会出现乱码.但是将服务部署在服务器linux上,转换出来的PDF中文就出现了 ...

  2. 使用poi根据模版生成word文档并转换成PDF文件(可处理doc文件与docx文件版)

    该篇文章是<使用poi根据模版生成word文档并转换成PDF文件>后续解决传入文件为doc文档或docx的处理方法 /*** 根据模板生成word** @param path 模板的路径* ...

  3. python doc转docx_利用python中的win32com模块将doc文件转为docx文件

    简介 win32com模块的功能也是非常的强大的,能够处理各种的文件 word操作 如何使用python的win32com模块实现将doc类型文件转成docx类型的文件 import os from ...

  4. .doc 转 .docx_什么是.DOCX文件,它与Microsoft Word中的.DOC文件有何不同?

    .doc 转 .docx For most of its long history, Microsoft Word has used a proprietary format for its save ...

  5. POI解析文档内容(txt,doc,docx,xls,xlsx,ppt,pdf)

    Apache POI  是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能.POI为" ...

  6. Freemark 模板生成doc文件,xml doc文件转docx 文件,docx文件转pdf文件

    freemark 模板生成doc文件,此doc文件为xml格式,无法直接转pdf 需要doc转docx文件,才能转pdf 方法1:docx4j 转 pdf 方法2: e-iceblue docx 转 ...

  7. matlab m文件的编写,Matlab实验报告(四)M文件的编写.doc

    Matlab实验报告(四)M文件的编写.doc 实验目的 学习MATLAB屮的关系运算和逻辑运算,掌握它们的表达形式和川法. 掌握MATLAB中的选择结构和循环结构. 学会用MATLAB进行M文件的编 ...

  8. 使用python将doc的word文件转换成docx文件

    文章目录 一.学习目标: 二.直接转换代码: 一.学习目标: 主要之前使用python提起word的docx的文件的数据.但是今天发现,如果是doc后缀的word文件,会报错,这样就无法提取数据了,然 ...

  9. python批量把doc文件转换成docx

    # -*- coding:utf-8 -*- import os import time from win32com import clientdef doc_to_docx(list_dir, sa ...

最新文章

  1. 星露谷物语json_星露谷物语 NPC地图显示MOD 怎么让地图显示NPC
  2. 【知识梳理1】Android触摸事件机制
  3. MySQL(21)--- GROUP BY 语句
  4. jsp,jstl checkbox 回显方法
  5. Windows独立安装程序此更新不适用于你的计算机怎么解决?
  6. gis 六边形网格_ArcGIS中的奇技淫巧(Ⅱ)—蜂巢网格图
  7. POPE-NH|1-棕榈酰基-2-油酰基磷脂酰乙醇胺POPE与NHS(N-羟基琥珀酰亚胺)酯偶联物
  8. idea 拉取报错You have not concluded your merge (MERGE_HEAD exists). Exiting because of unfinished merge.
  9. Linux文件管理 | Liunx 常用命令
  10. IOS UITableView 改变编辑模式下的移动图标
  11. 3S处理技术 -MapGIS转换shp攻略
  12. 关于iPhone改变的一切,这也许是史上最详细的盘点
  13. C++(11):通过is_same检查类型,decay退化类型
  14. 基于STM32设计的拼图小游戏
  15. 中西方对时间的差异_中西方时间观念的不同
  16. python模糊神经网络预测_MATLAB模糊神经网络的预测算法--预测水质
  17. android开发编辑wordpress,如何用WordPress 开发基于安卓的APP接口?
  18. GetMessage PeekMessage SendMessage PostMessage
  19. python3 之 趣味数学题(爱因斯坦)
  20. 复杂网络;社交网络;社区检测;节点重要性(重要节点识别);舆论动力学模型; 传染病模型 ;蓄意攻击 、随机攻击;网络鲁棒性、脆弱性、稳定性

热门文章

  1. JQuery序列化和反序列化
  2. 修改滚动条样式的方法
  3. java jtextarea.setfont_如何在JTextArea中更改文本颜色?
  4. 理解pem pfx文件
  5. Putty登陆root输入密码被拒绝(没开启ssh)
  6. 导入 txt 文件数据到 MySQL 表
  7. 【算法竞赛从入门到精通】【基础算法】
  8. JMeter—录制脚本
  9. 信息论与编码|香农编码的Matlab实现
  10. 常见的几种距离量度(欧式距离、曼哈顿距离、切比雪夫距离等)