PPTX Python“插入图表”逐渐变慢

PPTX Python“插入图表”逐渐变慢,python,performance,python-pptx,Python,Performance,Python Pptx,我们有一个应用程序可以创建包含1000多张幻灯片的大型pptx,我们正在使用python pptx库 我们的问题是,随着演示文稿的增长,添加元素和/或图表的速度会变慢 来自pptx导入演示文稿的 从pptx.chart.data导入类别ChartData 从pptx.enum.chart导入XL\u图表\u类型 从pptx.util导入英寸 SLD_布局_标题_和内容=1 prs=演示文稿() 幻灯片布局=prs.幻灯片布局[SLD\U布局\U标题和内容] 对于范围内的idx(2000年): 幻

我们有一个应用程序可以创建包含1000多张幻灯片的大型pptx,我们正在使用
python pptx

我们的问题是,随着演示文稿的增长,添加元素和/或图表的速度会变慢

来自pptx导入演示文稿的

从pptx.chart.data导入类别ChartData
从pptx.enum.chart导入XL\u图表\u类型
从pptx.util导入英寸
SLD_布局_标题_和内容=1
prs=演示文稿()
幻灯片布局=prs.幻灯片布局[SLD\U布局\U标题和内容]
对于范围内的idx(2000年):
幻灯片=prs.slides.add_幻灯片(prs.slide_布局[5])
图表数据=类别ChartData()
图表_data.categories=[‘东部’、‘西部’、‘中西部’]
图表数据。添加数据系列(‘系列1’,(19.2、21.4、16.7))
x、 y,cx,cy=英寸(2),英寸(2),英寸(6),英寸(4.5)
slide.shapes.add_图表(
XL\图表\类型。列\群集、x、y、cx、cy、图表\数据
)
打印(str(idx))
prs.save('test.pptx')

我想知道以前是否有人遇到过这种情况?pptx python似乎必须在演示文稿内部进行查找,从而使每次迭代的速度变慢。还是我们使用python循环并将变量加载到内存中的方式?

这似乎是图表和幻灯片零件名分配中的O(N^2)行为。GitHub发布线程中的更多细节如下:

因此,在每次循环迭代中,我都在
self.partnames
中创建新的
键,对应于在
/ppt/
之后接收的
tmpl
,并按
1
递增,这并不需要每次循环所有零件名并确定下一个零件名可用的零件名

def next_partname(self,tmpl):
"""
返回代表下一个partname的| PackURI |实例
匹配*tmpl*,它是printf(%)样式的模板字符串
包含单个替换项的“%d”,用于插入
partname的整数部分。示例:“/ppt/slides/slide%d.xml”
"""
name=tmpl.split(os.sep)[2]
self.partnames[name]+=1
候选零件名称=tmpl%self.partnames[名称]
返回PackURI(候选零件名称)
我知道,它可以进一步改进,只是需要一些提示,我可能错过了什么