Python win32com模块 合并文件夹内多个docx文件为一个docx

时间:2022-06-19 19:45:08

Python win32com模块 合并文件夹内多个docx文件为一个docx

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from win32com.client import Dispatch
import os,sys
#import pandas as pd #下面三句是为了能取得系统自带常量
from win32com.client import constants as con
#from win32com.client.gencache import EnsureDispatch
#EnsureDispatch('Word.Application')
def mkdir(path):
# 引入模块
# import os # 去除首位空格
# path=path.strip()
# 去除尾部 \ 符号
# path=path.rstrip("\\") # 判断路径是否存在
# 存在 True
# 不存在 False
isExists=os.path.exists(path) # 判断结果
if not isExists:
# 如果不存在则创建目录
# 创建目录操作函数
os.makedirs(path)
print(path+'创建成功')
return True
else:
# 如果目录存在则不创建,并提示目录已存在
print(path+' 目录已存在')
return False pwd=__file__
pwd=os.path.dirname(pwd)
print(pwd) mkdir(os.path.join(pwd,'hebing'))
#xlApp=Dispatch('Excel.Application')
wdApp=Dispatch('Word.Application')
#xlApp.Visible=1 docB=wdApp.Documents.Add()
#=====页面设置======
ps=56.7
docB.PageSetup.TopMargin=ps
docB.PageSetup.BottomMargin=ps
docB.PageSetup.LeftMargin=ps
docB.PageSetup.RightMargin=ps
docB.SaveAs(pwd + '\\hebing\\hebing.docx',14)
#======保存文档========= for root,dirs,files in os.walk(os.path.join(pwd,'放word文档的文件夹'),topdown=False):
print(files)
for name in files:
docT=wdApp.Documents.Open(os.path.join(root,name))
#docT.Range(0,0)#光标定位文档开始
wdApp.Selection.WholeStory()#全选word文档
wdApp.Selection.Copy()
docB.Activate()
#wdApp.Selection.EndKey(Unit=con.wdLine)
docB.Range()#光标定位文档结束
wdApp.Selection.Delete()
wdApp.Selection.Paste() docT.Close() docB.Save()
docB.Close()
wdApp.Quit()