[Python] Extraire une valeur dans une chaine a cote d'un mot

Bonjour je débute en python
Donc voila ma question
Je me suis fait un Batch M$ au travail pour voir si des PC sur le réseau sont bien connectés
Donc j’ai un fichier avec toutes les ips que je veux atteindre pingip.info
Et grâce a un compteur je ping toutes les X minutes les ips dans mon .info
Le batch m envoie un “net send” des qu’une ip change de statut (Ok ou Nok) et renseigne un log
Donc voila le batch M$ c’est lourd mon proc a 100% tout le temps
Je me suis décidé à le faire en python (c’est du windows mais ça reste du python j’espère que vous serez tolèrent parce que on est sur un forum debian mais c’est le seul forum auquel je suis inscrit a part celui d’audiofanzine :blush: )

[code]# -- coding:Utf-8 --

import os
ping=os.popen(“ping sip92 -n 1”)
lignes=ping.readlines()
print lignes[/code]
ça me sort :

J’aimerais extraire la valeur a coté de perdu =

Est-ce possible ou y a t’il un moyen plus simple pour faire ca ?

Merci

Je me suis fais un petit code mais j’ai un petit souci avec les boucles while :

[code]# -- coding:Utf-8 --

essai python

loop1 , loop2 = 0 , 0

while (loop1 < 4):
print "@@@@"
while (loop2 < 2):
print "##"
loop2 = loop2 + 1
loop1 = loop1 + 1[/code]

ca me donne

[code]>>>
@@@@

@@@@
@@@@
@@@@[/code]

Mais moi je veux

[code]
@@@@

@@@@

@@@@

@@@@

##[/code]

Pourriez-vous m’aider

Bon j’ai réussit
Il fallait en gros que j’initialise la boucle avant celle-ci

[code]# -- coding:Utf-8 --

essai python

loop1 = 0
while (loop1 < 4):
print “@@@@”
loop2 = 0
while (loop2 < 2):
print “##”
loop2 = loop2 + 1
loop1 = loop1 + 1[/code]

Voici mon code pour le ping
Oui je sais ce n’est pas beau et je pari qu’il y a une fonction qui permet de faire ca
Mais bon je suis content de moi c’est déjà ca :smiley:

[code]# -- coding:Utf-8 --

test ping

pingOk = “None”
import os
ping=os.popen(“ping sip92 -n 1”) #permet d’exécuter un programme console
resultping=ping.readlines() # renvoi dans la variable resultping

nbline = len(resultping) #donne le nombre de ligne dans la variable nbline
loopA = 1
while (loopA < nbline): #boucle de lecture ligne par ligne
phrase = resultping[loopA]
nbcar = len(phrase) #donne le nombre de caractère dans la variable nbcar
loopB = 1
while (loopB < nbcar - 1): # boucle d’avance du curseur
mot = phrase[loopB]
loopC = 1
while (loopC < 10): #boucle d’extraction de (10) caractères
posi = loopB + loopC
mot = mot + phrase[posi]
loopC = loopC + 1
if (posi == nbcar - 1): # empêche de sortir des limites avec un sortie de boucle
loopC = 10
if (mot == “perdus = 0”): #condition pour que le ping soit ok (10 caractères)
pingOk = “ok”
loopB = loopB + 1
loopA = loopA + 1

print pingOk
[/code]

:smt006

Je vais répondre pour la boucle, pas le ping (mais je vais voir si je peux aider): utilise la boucle for !

for i in range(4): print("@@@@") for j in range(2): print("##")
Ce code est compatible Python 3, que demander de plus ?

Une réponse “vite fait mal fait" pour le ping, tu as un début sur cette page.
En gros il te faudrait comprendre les expressions régulières et scanner avec un bout de code du genre:

Les expressions régulières t’éviteront d’avoir à boucler sur les lignes et de scanner avec des pointeurs et des index et des bouts de caractères et j’en passe et des meilleurs.