Python 打印长字符串后 IDLE 变慢

Python IDLE slows down after printing long string

在处理我的图像文件时,我尝试将其读入一个字符串并将其打印在我的 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...

正如您在 link 的答案中所解释的那样,问题是 tk 文本小部件针对处理短行进行了优化。我已经加载了 IDLE 的 Shell 超过 500000 行,可能有 40 个字符。那是 2000 万个字符,比一个人写的任何文件都要大得多。它非常适合预期用途。

在引用的 link 中,10000 个字符的行一次构建 1 个字符。 Tk Text 停滞在 1000 左右的某个位置。你显然一次扔了 160000 个字符。一次性10000个就够了

PS:没有打印语句的回显表达式是标准的 Python 交互式解释器行为。我很确定这可能是从前人那里复制的。