目录

  • 前言
  • 代码
  • GIF演示

前言

在使用python提取所有word文件中的所有图片中提到过doc与docx互转的方法,但是代码很简单,只支持单个文件,后来优化了一下代码,现在支持某路径下的所有doc与docx互转了。

代码

代码描述:
用来实现doc与docx互转的一个软件

特色:

  1. 可穿透指定路径下的所有文件,对找到的所有word文档进行操作,并把结果输出到指定路径中
  2. 直接可以运行,不需要修改任何内容
  3. 支持3种转换模式
    所有doc与docx互转
    所有doc转docx
    所有docx转doc

注意事项:

  1. 请确认没有同名文件,否则文件会覆盖,或者使用Everything过滤出word文档之后,再进行互转
  2. 注意安装相关的库
from win32com import client
import os
'''
代码描述:
用来实现doc与docx互转的一个软件特色:
可穿透指定路径下的所有文件,对找到的所有word文档进行操作
并把结果输出到指定路径中注意事项:
请确认没有同名文件,否则文件会覆盖
'''# 转换doc为docx
def doc2docx(fn):word = client.Dispatch("Word.Application")  # 打开word应用程序doc = word.Documents.Open(fn)  # 打开word文件a = os.path.split(fn)  # 分离路径和文件b = os.path.splitext(a[-1])[0]  # 拿到文件名doc.SaveAs("{}\\{}.docx".format(path1, b), 12)  # 另存为后缀为".docx"的文件,其中参数12或16指docx文件doc.Close()  # 关闭原来word文件word.Quit()# 转换docx为doc
def docx2doc(fn):word = client.Dispatch("Word.Application")  # 打开word应用程序doc = word.Documents.Open(fn)  # 打开word文件a = os.path.split(fn)  # 分离路径和文件b = os.path.splitext(a[-1])[0]  # 拿到文件名doc.SaveAs("{}\\{}.doc".format(path1, b), 0)  # 另存为后缀为".docx"的文件,其中参数0指docdoc.Close()  # 关闭原来word文件word.Quit()# 获取指定路径下的所有word文件
# 可以穿透指定路径下的所有文件
def getfile(path):word_list = []  # 用来存储所有的word文件路径for current_folder, list_folders, files in os.walk(path):for f in files:  # 用来遍历所有的文件,只取文件名,不取路径名if f.endswith('doc') or f.endswith('docx'):  # 判断word文档word_list.append(current_folder + '\\' + f)  # 把路径添加到列表中return word_list  # 返回这个word文档的路径# 用户选择的转换模式
def choice():num_list = ['1', '2', '3']a = 1print('请选择转换模式:')while a:print('doc与docx互转请输入:\t1')print('doc转docx请输入:\t2')print('docx转doc请输入:\t3')user_choice = input('我选择:')if user_choice in num_list:a = 0return user_choiceelse:print('请输入正确的选项')if __name__ == '__main__':word_path = input('请给出word文档所在路径:')words = getfile(word_path)# 设置一个路径path1,保存输出结果print("[+] 请输入一个路径,用来存放所有的处理结果")print("[+] 或者按回车键,我将自动把处理之后的文件存放在你的桌面")path1 = input('')  # path1 用来存放所有的处理结果if len(path1):passelse:desktop_path = os.path.join(os.path.expanduser("~"), 'Desktop')  # 获取桌面路径path1 = os.path.join(desktop_path, '所有的处理结果')os.makedirs(path1)user_choice = choice()print('转换中,请稍等……')if user_choice == '1':for word in words:if word.endswith('doc'):doc2docx(word)else:docx2doc(word)if user_choice == '2':for word in words:if word.endswith('doc'):doc2docx(word)if user_choice == '3':for word in words:if word.endswith('docx'):docx2doc(word)print('转换完毕')

GIF演示

python实现——doc与docx互转(终极版)相关推荐

  1. python 3 | doc转docx

    python 3 | doc转docx 由于python 3 中 python-docx包只能对docx操作. path_original .path_final 为绝对路径,精确到.doc/.doc ...

  2. python中doc转docx

    最近研究怎样doc转docx,并不是单纯的改一下文件后缀,直接改后缀内核还是不一样,不便于python-docx的调用 目录 一.查看doc和docx内核 二.前置条件两个 三.代码 一.查看doc和 ...

  3. JAVA实现Doc与Docx互转

    一.开发须知 Jacob是Java-COMBridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序 ...

  4. 【Python】python读取doc、docx文件里的表格内容并存入excel中

    效果 先展示下基本的效果,首先我们只有一个doc文件,与python的代码: 我这里用的是doc的word文档,文档内表格如下: 通过python读取后打印: 我这里没有专门按照表格内往excel中写 ...

  5. 关于使用java操作doc与docx互转

    1.创建license.xml文件 在项目某位置新建一个license.xml文件,并复制下面内容复制到文件里就可以了. <License><Data><Products ...

  6. python 读取doc 和 docx

    from docx import Document import os from win32com import clientfile_name="D:/BaiduNetdiskDownlo ...

  7. Ubuntu下使用python读取doc和docx文档的内容

    读取docx文档 使用的包是python-docx 1. 安装python-docx包 sudo pip install python-docx 2. 使用python-docx包读取数据 #enco ...

  8. 别再问我Python打包成exe了!(终极版)

    大家好,我是小五 <老板又出难题,气得我写了个自动化软件> 上次这篇文章中,评论区有好几条留言都是关心如何将python脚本打包成10多M的? 那今天小五就给大家全面总结一下:Python ...

  9. doc与docx批量互转宏代码

    由于未找到npoi读取doc的方法,只能用npoi读docx,无奈手里有4000多个doc,要是手动一个一个转为docx,那整个人都要不好了,于是在网上找到两个函数,使用word宏功能实现doc与do ...

最新文章

  1. 非对称卷积增强CNN特征拟合
  2. python能写软件吗-python代码能做成软件吗
  3. [转]符号和运算符参考 (F#)
  4. YbOJ-网格序列【拉格朗日插值】
  5. 熊猫数据集_熊猫迈向数据科学的第一步
  6. 编程加速服务器_英特尔:将可编程加速进行到底
  7. 阿里矢量图标库的使用方法
  8. ECharts中国地图篇-名称经纬度调整
  9. excel服务器 微信设置,微信电脑版excel怎么编辑
  10. C# 用itextsharp把Html转PDF
  11. CSS设计模式读书笔记
  12. debian linux上usb摄像头,[Debian] 安装USB摄像头(芯片ZC0301)驱动
  13. Android微博平台设计,基于Android平台的微博系统设计与开发
  14. 多可系统的权限规则详解
  15. MySQL,Oracle系统学习,以及SQL语言-----数据库篇学习笔记
  16. Soft NMS+Softer NMS+KL Loss
  17. 众筹系统源码 java_基于JavaWeb的创意众筹网站系统的设计与实现 毕业论文+任务书+开题报告+外文翻译+设计源码+mysql文件...
  18. MATLAB-自动控制原理-时域分析
  19. 郝斌数据结构全套教程高清在线观看和下载-学习数据结构必看
  20. apache2.4虚拟主机配置

热门文章

  1. 新型勒索软件Phobos利用弱安全性攻击目标
  2. H5 兼容底部地址栏、搜索栏
  3. 阿里年薪50WJAVA工程师转大数据学习路线!
  4. ArcGIS:如何利用栅格数据进行路径网络分析-可达性分析?
  5. 一个无损连接和保持函数依赖性的3nf分解
  6. 数组元素循环左移n个位置(JAVA)
  7. 整理最全的“大数据”学习资源
  8. DirectShow Utility
  9. kubeflow--安装使用pipeline
  10. 基于go实现简单的计算自资源监控