提高在Python中创建HTML表格单元格的速度

时间:2014-08-26 10:51:12

标签: python html performance list html-table

我继承了一些Python代码,用于创建最多19列宽5000行的表。最初,它在屏幕上绘制了9秒钟,但是I managed to reduce that 6秒

现在我想进一步优化它。我已经看到,毫无疑问,瓶颈是创建单元格内容的部分。代码是:

sText += '<td align="middle">%s</td>' % sCellContents

其中sTextsCellContents是字符串。 (格式化单元格内容的样式可能会有所不同。)

如果删除除<td></td>标签以外的所有内容,速度将保持不变,这意味着样式对性能没有影响。但是如果我删除这些标签(从而将内容放在桌子外面),屏幕会以三秒显示(当然,格式化很糟糕)。

有没有办法在保留格式的同时优化该行?

我已经尝试过使用列表:

lText.append(sCellContents)

然后在最后加入:

sText = ''.join(lText)

但这没有任何区别。

2 个答案:

答案 0 :(得分:0)

您应该尝试io.StringIO。它取而代之的是流,可能会提高性能。像这样使用它:

s_text_stream = io.StringIO()
s_text_stream.write('<td align="middle">%s</td>' % sCellContents)
s_text_stream.seek(0)
s_text = s_text_stream.read()

答案 1 :(得分:0)

您可以尝试使用Mako模板,而无需对现有代码进行太多修改。

from mako.template import Template

t = Template('<td align="middle">${content}</td>')

for cell in sCellContents:
    t.render(content=cell)

如果有的话,看看会有什么不同,这将是非常有趣的。