Forum Clubic

Problème en python : os.popen - xssssssss aie confiaaaaannnceeeeeee

Bonjour !

J’ai un problème avec un script que j’ai fait en python :

Comme il doit aller chercher des infos sur le net j’ai fais une fonction pour tester la présence d’une connection, ce qui est indispensable chez moi :frowning:
La voila :

def testConnectionNet() :
ping=os.popen(“ping 72.14.253.104 -c 1”,“r”)
lignes=ping.readlines()
for ligne in lignes :
print ligne
net = re.search("(1 received)",ligne)
if net :
print “verification de la presence d’une connection internet…OK”
ping = “”
return 1
ping = “”
print “verification de la presence d’une connection internet…ERROR”
return 0

l’addresse ip , c’est google.com, je ne prend pas trop de risques :stuck_out_tongue:
Donc, il fait le test à chaque erreur qu’il trouve, Et au bout d’un certian temps il me sort :
ping=os.popen(“ping 72.14.253.104 -c 1”,“r”)
OSError: [Errno 24] Too many open files

Voila, j’aimerais donc savoir si je fais quelque chose mal (le test de la présence d’internet est indispensable dans ce cas là).

Sinon avez vous une autre méthode pour tester ça ?

Merci beaucoups et bonne journée !
PS : je suis sous linux

Toi, tu as oublié de faire un os.close() ou équivalent. Car ça, ça veut dire que tu ouvres un tas de processus, sans libérer les ressources.

Comme ca ?
os.close(ping)

J’ai essayé le os.close(ping), mais l’erreur est toujours présente au bout d’un certain temps…

Il ne faudrait pas plutôt faire ping.close() ??? :smiley:

disons que je fais pas du Python moi :slight_smile: donc j’en sais rien :slight_smile: il manque un close, c’est sûr :stuck_out_tongue:

Moi non plus, j’te rassure, j’ai peur des serpents :paf: