2016-09-29 47 views
0

後,這是我的代碼:蟒紋延遲

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

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

輸出:

GET:https://www.###.com/getfoo DONE


request.get大概需要5秒鐘就結果。 但是在5秒之後輸出顯示,而不是5秒後顯示的第一個和DONE

爲什麼?

回答

1

其bcs print()不會刷新到標準輸出;

你可以像下面這樣做

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/"); 
2

因爲控制檯在線緩衝輸出。致電sys.stdout.flush()爲了沖洗它。