延迟后Python在同一行打印

时间:2016-09-29 17:07:25

标签: python

这是我的代码:

def get(url):
    print 'GET: ' + url,
    r = requests.get(url)
    print 'DONE'
    return r

get('https://www.###.com/getfoo')

输出:

  

获取:https://www.###.com/getfoo完成


 request.get需要大约5秒才能得到结果。 然而输出显示在5秒之后,而不是第一次imedeately和 DONE 5秒后。

为什么?

2 个答案:

答案 0 :(得分:2)

因为控制台是行缓冲输出。致电sys.stdout.flush()以便冲洗它。

答案 1 :(得分:1)

它的bcs print()不会刷新到stdout;

你可以这样做

import requests

from sys import stdout

def get(url):
    stdout.write( 'GET: ' + url+"\n");
    stdout.flush(); # this func() will flush all to stdout
    r = requests.get(url);
    print("DONE");
    return r;

get("http://programmersforum.ru/");