2016-05-04 15 views
2

Ich verwende urllib.urlopen() in einer Funktion namens urlopen_test(). In dieser Funktion rufe ich urlopen zweimal auf, der erste Aufruf ist ziemlich schnell, aber nicht der zweite. Jeder Anruf kann mir helfen, herauszufinden, warum?Urlopen ist sehr langsam in den zweiten Aufruf

BTW, ich benutze line_profile überprüfen Sie jede Zeile in der Funktion, folgende ist das Ergebnis.

Linie # Zugriffe Zeit pro Treffer% Time Line Inhalt

5           @profile 
6           def urlopen_test(): 
7   1  28690 28690.0  0.1  fh =urllib.urlopen('ftp://a.com/1.log') 
8   1   58  58.0  0.0  print fh.read() 
9 
10   1  30027787 30027787.0  99.9  fh = urllib.urlopen('ftp://a.com/1.log') 
11   1   40  40.0  0.0  print fh.read() 

Antwort

1

ich den Punkt zu finden. Wenn ich fh.close() nach dem ersten fh.read() rufe, läuft die urlopen_test() Funktion schnell. Aber ich verstehe immer noch nicht, warum, wenn ich die Datei von der ersten urlopen Aufruf die zweite urlopen() Aufruf geschlossen sehr schnell.