Python: Continuer la boucle après l'exception
J'ai le script suivant (ci-dessous). qui va renvoyer le code d'état de l'Url. Il parcourt un fichier et tente de se connecter à chaque hôte. Seul problème, c'est que c'est évidemment boucle s'arrête quand il atteint une exception.
J'ai essayé de nombreuses choses à mettre le comment de dans une boucle, mais en vain. Toutes les pensées?
import urllib
import sys
import time
hostsFile = "webHosts.txt"
try:
f = file(hostsFile)
while True:
line = f.readline().strip()
epoch = time.time()
epoch = str(epoch)
if len(line) == 0:
break
conn = urllib.urlopen(line)
print epoch + ": Connection successful, status code for " + line + " is " + str(conn.code) + "\n"
except IOError:
epoch = time.time()
epoch = str(epoch)
print epoch + ": Connection unsuccessful, unable to connect to server, potential routing issues\n"
sys.exit()
else:
f.close()
EDIT:
J'ai trouvé cela dans le temps moyen, des problèmes avec cette? (je suis encore à apprendre :p )...
f = file(hostsFile)
while True:
line = f.readline().strip()
epoch = time.time()
epoch = str(epoch)
if len(line) == 0:
break
try:
conn = urllib.urlopen(line)
print epoch + ": Connection successful, status code for " + line + " is " + str(conn.code) + "\n"
except IOError:
print epoch + "connection unsuccessful"
Merci,
MHibbin
Avez-vous essayé la capture de l'exception à l'aide d'un try...except bloc, et ensuite d'avertissement et continue?
Wilson, j'ai eu un autre jeu... et changé à ma question... est ce que vous vouliez dire?
Il est en effet. Bien fait...
Wilson, j'ai eu un autre jeu... et changé à ma question... est ce que vous vouliez dire?
Il est en effet. Bien fait...
OriginalL'auteur MHibbin | 2012-07-03
Vous devez vous connecter pour publier un commentaire.
Vous pourriez gérer l'exception des cas où il est élevé. Aussi, l'utilisation d'un gestionnaire de contexte lors de l'ouverture de fichiers, il est plus simple de code.
for line in f
est probablement mieux ici qu'une boucle while.Absolument, et si vous testez chaque ligne de la lutte contre la chaîne vide (ligne == ":) avant de démonter les retours à la ligne (\n), alors vous pouvez gérer les lignes vides dans le fichier source sans quitter prématurément.
Dunlop:
if line:
ouif not line: continue
Merci j'ai la liste de env 100 url de test (pour le réseau interne de la connectivité (ils sont des appareils avec interface web). Nous tenons à les vérifier toutes les 60 secondes. est-il possible d'accélérer le processus... puis-je utiliser ce script pour générer un petit script pour chaque hôte (ou serait-ce mauvais pour la performance)
OriginalL'auteur aychedee
Vous avez besoin pour gérer exception soulevée par
urllib.urlopen(line)
, quelque chose comme ça.OriginalL'auteur Rohan
Vous pourriez essayer d'attraper l'exception à l'intérieur de la boucle while tant que quelque chose comme cela.
OriginalL'auteur JRajan