提高在Python中创建HTML表格单元格的速度
我继承了一些Python代码,用于创建最多19列宽5000行的表。最初,在屏幕上绘制表格需要9秒,但要6秒 现在我想进一步优化它。毫不奇怪,我发现瓶颈是创建单元格内容的部分。代码是:提高在Python中创建HTML表格单元格的速度,python,html,performance,list,html-table,Python,Html,Performance,List,Html Table,我继承了一些Python代码,用于创建最多19列宽5000行的表。最初,在屏幕上绘制表格需要9秒,但要6秒 现在我想进一步优化它。毫不奇怪,我发现瓶颈是创建单元格内容的部分。代码是: sText += '<td align="middle">%s</td>' % sCellContents 然后在末尾连接: sText = ''.join(lText) 但是这没有什么区别。您应该尝试一下io.StringIO。相反,它是一个流,可能会提高性能。像这样使用它: s_te
sText += '<td align="middle">%s</td>' % sCellContents
然后在末尾连接:
sText = ''.join(lText)
但是这没有什么区别。您应该尝试一下
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()
s_text_stream=io.StringIO()
s_text_stream.write(“%s”%sCellContents)
s_text_stream.seek(0)
s_text=s_text_stream.read()
您可以尝试使用模板,而无需对现有代码进行太多修改
from mako.template import Template
t = Template('<td align="middle">${content}</td>')
for cell in sCellContents:
t.render(content=cell)
从mako.template导入模板
t=模板(“${content}”)
对于sCellContents中的单元格:
t、 渲染(内容=单元格)
如果有什么不同的话,看看会有什么不同是非常有趣的。你有没有尝试过像Mako或Jinja2这样的模板引擎?@MFB-没有,部分原因是我不熟悉这些其他选项,部分原因是我不想对遗留代码进行重大的(?)更改。很公平。。。但是,请花2分钟阅读本页的前几段:“在屏幕上绘制表格花了9秒钟”出于好奇,您是如何确定“生成HTML”而不是“浏览器端”的瓶颈的?你的HTML的字节大小是多少?@Wikis有你的代码吗?谢谢,我试过了,但没有得到任何输出,我会继续尝试。很抱歉,我不得不放弃这个。添加s_text_stream.seek(0)s_text=s_text_stream.read()
花费了超过20秒的加载时间。抱歉,我花了一些时间尝试设置,但这并不像我希望的那样简单。
from mako.template import Template
t = Template('<td align="middle">${content}</td>')
for cell in sCellContents:
t.render(content=cell)