3 votes

Un programme Python simple s'est bloqué

Hier, j'ai écrit un programme Python simple (vraiment simple comme indiqué ci-dessous) pour valider les réponses d'état HTTP d'environ 5000 URL. Le problème est que le programme semble se bloquer toutes les 400 à 500 URL. Comme je suis vraiment novice en matière de programmation, je n'ai aucune idée de la façon de suivre le problème.

J'ai ajouté la partie "a = a + 1" pour savoir combien d'URL avaient été traitées lorsque le système s'est bloqué.

Comment puis-je trouver quel est le problème ? Merci beaucoup.

J'utilise Ubuntu 11.10 et Python 2.7.

#!/usr/bin/env python 
# -*- coding: utf-8 -*-

import httplib

raw_url_list = open ('url.txt', 'r')
url_list = raw_url_list.readlines()
result_file = open('result.txt', 'w')
a = 0

for url in url_list:
    url = url.strip()[23:]
    conn = httplib.HTTPConnection('www.123456789.cn')
    conn.request('HEAD', url)
    res = conn.getresponse()
    result_file.write('http://www.123456789.cn%s, %s, %s \n' % (url, res.status, res.reason))
    a = a + 1
    print a

raw_url_list.close()
result_file.close()

3voto

PearsonArtPhoto Points 14639

Vous devez fermer vos connexions une fois que vous avez terminé. Ajoutez simplement ceci à la fin de votre boucle for.

     conn.close()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X