用中间过程分解打印语句Python

时间:2018-02-27 17:08:25

标签: python python-3.x command-line

当我运行下面的脚本时,print语句会同时出现。我想要显示第一个print语句,然后执行循环,然后打印运行时间。

我需要包含其他声明吗?

import time
def main():
    Time = time.clock()
    print("Counting to 100,000,000:", end = "")

    for i in range(1,100000000):
        a = 3

    print(" -- Time: ", time.clock() - Time)

if __name__ == "__main__":
    main()  

1 个答案:

答案 0 :(得分:0)

Python的标准输出中有一个缓冲区。这意味着您要写入的数据(如在print()中)有时会被存储,然后一次性写入 - 正如您在此处所遇到的那样。

要覆盖它,只需调用sys.stdout.flush()即可“刷新”此缓冲区中已有的所有内容。

因此,要将此应用于您的代码,它看起来像:

import time, sys
def main():
    Time = time.clock()
    print("Counting to 100,000,000:", end = "")
    sys.stdout.flush()

    for i in range(1,100000000):
        a = 3

    print(" -- Time: ", time.clock() - Time)

if __name__ == "__main__":
    main()  

按预期运行(产生以下输出),第二部分稍后出现。

Counting to 100,000,000: -- Time:  4.796258999999999