打印长字符串后,Python IDLE变慢

时间:2017-07-11 18:56:05

标签: python performance printing python-idle

在处理我拥有的图像文件时,我尝试将其读入字符串并将其打印在IDLE 3.6上。该字符串大约160K字节长,我已经将它保存到我的机器上的txt文件中。这需要大约一秒钟,所以我认为打印需要大约相同的时间......

从来没有我错过了......

现在,我检查了this,第一个答案表明打印本身存在问题。在他们的情况下,格式是非标准的,所以我不确定我的情况是否相同。其次,如果打印是问题,为什么IDLE在打印完成后似乎很慢

这是我运行它的方式:

with open(location_of_160KB_png_file, "rb") as imageFile:
    f = imageFile.read()
    b = bytearray(f)
    b=''.join([str(bb) for bb in b])
    b[:10]    # this prints easily (on IDLE I don't have to use _print_ function, I can just type the variable name)
    b         # this, however...

1 个答案:

答案 0 :(得分:1)

正如您给出的链接的答案中所解释的那样,问题是tk Text小部件已针对处理短线进行了优化。我已经为IDLE的Shell加载了超过50万行,也许有40个字符。这是2000万个字符,比任何人写的文件大。它非常适合预期用途。

在引用的链接中,一次生成10000个char行1个char。 Tk Text陷入了低位1000的某个地方。你显然一次扔掉了160000个字符。一下子10000就够了。

PS:没有print语句的回显表达式是标准的Python交互式解释器行为。我相当肯定这可能是从前辈那里复制过来的。