一键转换格式之docx,doc篇

前言

近期处理来校招聘企业的招聘简章,发现文件格式杂乱不堪,doc、docx、xls、xlsx格式参差不同。
故在网上寻找转换格式的代码,并经过整理整合,编辑出可以直接对随机文件夹内的所有word文档进行格式转换。

使用的库有:os、win32com

简单讲解一下各个模块的功能以及举例:

  1. os模块:常用于路径操作、进程管理、环境参数等几类。其中os.path子库以path为入口,用于操作和处理文件路径。
import os
def transformat():
    path = os.getcwd() #os中较为常用的功能,用于获取当前工作目录
    files = os.listdir(path) #获取当前工作目录下的文件夹包含的所有文件或者文件夹名字的列表
    print(files)
transformat()

输出结果为:
['1.doc', '2.doc', '3.doc', '4.doc', '5.doc', 'doc.py']
  1. win32com模块:功能比较齐全,相比于python的docx模块,win32com可以同时处理doc和docx文件

完整代码如下:

import os
from win32com import client
def transformat():
    path = os.getcwd()		    # os中较为常用的功能,用于获取当前工作目录
    files = os.listdir(path)	# 获取当前工作目录下的文件夹包含的所有文件或者文件夹名字的列表
    i = 0
    for file in files:                                
        filename,ext = os.path.splitext(file)     # 对文件名(路径)根据后缀进行分割,分为文件名和后缀
        if ext == '.doc':                         # 筛选出后缀为.doc的文件
            i += 1
            print('{}.文件【{}】正在转换中···'.format(i,file))  # 用于检查文件是否进行转换
            word = client.Dispatch('Word.Application')        # 调用客户端,此处打开word软件
            doc = word.Documents.Open(path+"\\"+file)         # 根据工作目录+文件路径打开此word文档
            doc.SaveAs(path+"\\"+filename+".docx.docx", 16)   # 将doc中的内容保存成新文件
            print('转换结果报告:\n'+'【{}】文件已转化为 【{}】\n文件保存在 
            【{}】 目录下\n'.format(f,filename + '.docx',path))    #用于检验文件是否转换成功
            doc.Close()										  #	每次循环结束后不要忘记关闭doc				
    ask = input("转换完毕,请输入任意键结束程序!")
if __name__ == "__main__":
    try:
        transformat()
    except FileNotFoundError
        print("没有相关文件哦~")    

效果图如下:
如图所示:文件夹中有五个doc文档
一键转换格式之docx,doc篇_第1张图片一键转换格式之docx,doc篇_第2张图片一键转换格式之docx,doc篇_第3张图片

你可能感兴趣的:(一键转换格式之docx,doc篇)