简述
python合并ppt的方法有很多,但网上常说的python-pptx的方法,我用不了,这里我用了一个python-office的库。
import office
import os
import shutil
input_path = "D:\\code\\pythoncode\\ok2_build\\postmoerm\\"
file_names = os.listdir(r"C:\Users\zilonglin\Documents")
data = []
# 遍历并打印文件名
for file_name in file_names:
data.append(file_name)
office.ppt.merge4ppt(input_path)
file_names = os.listdir(r"C:\Users\zilonglin\Documents")
for file_name in file_names:
if file_name not in data:
print(file_name)
shutil.move('C:\\Users\\zilonglin\\Documents\\'+file_name, 'D:\\code\\pythoncode\\ok2_build\\m2')
但又两个問題,1.合併的ppt順序和文件夾排列的順序不一致2.無法通過指定的路徑保存文件,這兩個我,解決辦法是 修改源碼
1.修改文件夾的文件的名字,因為排列是文件名順序排列的,這個是最快的,或者是你可以修改 get_files的方法,這個也不難,因為它只是一個數組返回的結果,返回文件名的數組
2.修改new_ppt為SaveAs就可以根據路徑來保存了
这里提供另外一个付费的方式,Aspose.Slides,合并之后有水印,
import aspose.slides as slides
# 打开第一张PPT
with slides.Presentation(r'D:\code\pythoncode\ok2_build\postmoerm\mywork1.pptx') as pres1:
# 打开第二个PPT
with slides.Presentation(r'D:\code\pythoncode\ok2_build\postmoerm\mywork2.pptx') as pres2:
# 循环播放幻灯片
for slide in pres2.slides:
# 克隆幻灯片
pres1.slides.add_clone(slide)
# 保存合并的 PPT
pres1.save(r"D:\code\pythoncode\ok2_build\m1\m2.pptx" , slides.export.SaveFormat.PPTX)
# 需要合并的文件列表
价格太贵了,比我的命还贵