python 实现docx与doc文件的互相转换
因文件格式要求,需要将docx 与doc文件相互转换,特寻找python代码,与大家共分享
from win32com import client#转换doc为docxdef doc2docx(fn): word = client.Dispatch('Word.Application') # 打开word应用程序 #for file in files: doc = word.Documents.Open(fn) #打开word文件 doc.SaveAs('{}x'.format(fn), 12)#另存为后缀为'.docx'的文件,其中参数12或16指docx文件 doc.Close() #关闭原来word文件 word.Quit()#转换docx为docdef docx2doc(fn): word = client.Dispatch('Word.Application') # 打开word应用程序 #for file in files: doc = word.Documents.Open(fn) #打开word文件 doc.SaveAs('{}'.format(fn[:-1]), 0)#另存为后缀为'.docx'的文件,其中参数0指doc doc.Close() #关闭原来word文件 word.Quit()docx2doc(u'd:python1.docx')
如果想转换为其他格式文件,需要在format文件名内修改,并用如下save as 参数
doc.SaveAs('{}.pdf'.format(fn[:-5]), 17)
需要说明的是:
要安装OFFICE,如果是使用金山WPS的,则还不能应用
补充:python批量将文件夹内所有doc转成docx
doc转docx函数import osfrom win32com import client def doc_to_docx(path): if os.path.splitext(path)[1] == '.doc': word = client.Dispatch(’Word.Application’) doc = word.Documents.Open(path) # 目标路径下的文件 doc.SaveAs(os.path.splitext(path)[0]+'.docx', 16) # 转化后路径下的文件 doc.Close() word.Quit() path = ''#填写文件夹路径doc_to_docx(path)获取文件夹下的所有文件的绝对路径
import os def find_file(path, ext, file_list=[]): dir = os.listdir(path) for i in dir: i = os.path.join(path, i) if os.path.isdir(i): find_file(i, ext, file_list) else: if ext == os.path.splitext(i)[1]:file_list.append(i) return file_list dir_path = ''ext = '.doc'file_list = find_file(dir_path, ext)源码
import osfrom win32com import client def doc_to_docx(path): if os.path.splitext(path)[1] == '.doc': word = client.Dispatch(’Word.Application’) doc = word.Documents.Open(path) # 目标路径下的文件 doc.SaveAs(os.path.splitext(path)[0]+'.docx', 16) # 转化后路径下的文件 doc.Close() word.Quit() def find_file(path, ext, file_list=[]): dir = os.listdir(path) for i in dir: i = os.path.join(path, i) if os.path.isdir(i): find_file(i, ext, file_list) else: if ext == os.path.splitext(i)[1]:file_list.append(i) return file_list dir_path = 'C:Userspython'#批量转换文件夹ext = '.doc'file_list = find_file(dir_path, ext)for file in file_list: doc_to_docx(file)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持好吧啦网。如有错误或未考虑完全的地方,望不吝赐教。
相关文章:
