IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Aide Python sur différents points


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2016
    Messages : 3
    Par défaut Aide Python sur différents points
    Bonjour à toutes et tous,

    Je début avec Python et je souhaite effectuer les opérations suivantes

    - Dans un raw_input, je souhaite que l'utilisateur renseigne une adresse IP. Seulement je souhaite une gestion des erreur.
    Par exemple, si le format n'est pas 1-254.1-254.1-254.1-254 (4 octects entre 1 et 254), une nouvelle demande d'adresse est faites à l'utilisateur.

    Mon début de code pour la gestion des erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while True:
     
    	if ips != CESTICIQUEJENESAISPASQUOIMETTRE:
    		print "Invalid address, try again!"
    		print "\n"
    		continue
     
    	else: 
    		break

    - L'un de mes script se termine par un while True. Je souhaite qu'il fasse appel à un second script mais cela me semble impossible car la boucle est infinie et ne doit pas s'arrêter.
    Mon début de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while 1:
    	send(toto)
    	print "toto in progress"
    	time.sleep(2)
    Merci par avance,

    Cldt,

    Ceelo

  2. #2
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    Salut,

    Python3:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    import ipaddress
     
    while True:
        try:
            # v4 et v6
            ipaddress.ip_address("1.1.1.256")
            break
        except ValueError:
            print("Invalid IP address")
    Pour la deuxieme question, j'ai pas trop compris ce que tu veux dire. Tu peux utiliser des threads/processus différent pour effectuer des actions en parallèle.

    Bon courage

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2016
    Messages : 3
    Par défaut
    Bonjour Dahtah,

    Merci pour ton aide.

    Premier point:

    J'essayes d'intégrer ton code mais je ne suis pas sur de comprendre:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #import du module
    import ipaddress
     
    #début de la boucle 
    while True:
    #le try est sur quoi? juste avant j'ai un raw_input avec demande d'entrer une IP. Je le place où?
        try:
            # v4 et v6
            ipaddress.ip_address("1.1.1.256")
            break
        except ValueError:
            print("Invalid IP address")
    Concernant le second point:

    A la fin de la boucle (fin du script), j'ai un spam de "toto in pr
    ogress" qui est en fait l'envoi de mes paquets (toto). La boucle est infinie mais j'aimerai tout de même soit lancer un second script automatiquement,
    soit que le script continue sa boucle tout en continuant la suite du ce dernier, exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #début de la boucle
    while 1:
            #lancement de toto infinie
    	send(toto)
    	print "toto in progress"
    	time.sleep(2)
     
    #ici je voudrais continuer mon script avec d'autres commandes mais la boucle de dessus ne se termine jamais.
    Dernier point:

    Je souhaite faire la même chose que le premier point. En gros je veux que le format des caractère entré par l'utilisateur dans raw_input soit sous la forme eth(range 1-50)
    comment faire?

    Cordialement,

    Ceelo

  4. #4
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    Salut,

    il faut que tu testes un peu quand même. Utilise la console, ca aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import ipaddress
     
    #début de la boucle 
    while True:
        #le try est sur quoi? juste avant j'ai un raw_input avec demande d'entrer une IP. Je le place où?
        input_ = input("Entrez une adresse: ")
        try:
            # v4 et v6
            ip = ipaddress.ip_address(input_ )
            break
        except ValueError:
            print("Invalid IP address")
    Pour 2, il faut que tu lances ta boucle dans un thread:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import threading
    import time
     
    def do_stuff(msg):
        print(msg)
        time.sleep(2)
        print("Fini!")
     
    t = threading.Thread(target=do_stuff, args=(("hello",)))
    t.start()
    print("More stuff")
    t.join()
    Pour 3, eth[0-50], regarde du cote des regexps:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    import re
    m = re.match("^eth[1-5]?[0-9]$", "eth9")
    print(m.group())

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2016
    Messages : 3
    Par défaut
    Bonjour Dahtah,

    J'ai réussi pour la partie 1 et 3.

    Je bloque encore sur la 2 (continuer le script en parallèle d'une boucle infinie).

    Ci-dessous mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while 1:
          send(toto)
          print ("toto in progress")
          time.sleep(2)
     
    print ("Nous allons continuer pendant l'envoi de TOTO")
    raw_input ("Entrer votre numéro de client")
    Le script s'arrête à time.sleep(2). La suite ne se lance pas et le message "toto in progress" apparaît en boucle (ce qui est normal).

    J'aimerai que cela se fasse comme en tâche de fond en parralèle et que mon script continue mais je n'y arrive pas avec les Thread,

    Cldt,

    Ceelo

Discussions similaires

  1. [Flex4] Mettre des labels sur les points d'un graph
    Par Swarovsky dans le forum MXML
    Réponses: 0
    Dernier message: 29/10/2012, 23h12
  2. Besoind d'aide pour un test sur différentes plateformes
    Par rambc dans le forum Général Python
    Réponses: 10
    Dernier message: 26/08/2012, 12h47
  3. Aide jeu sur Python
    Par david803 dans le forum Débuter
    Réponses: 0
    Dernier message: 01/12/2011, 19h49
  4. Aide sur Extension/Point d'extension
    Par Contrec dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 02/02/2010, 15h09
  5. besoin d'aide sur un point dans la FAQ
    Par Jim_Nastiq dans le forum Delphi
    Réponses: 11
    Dernier message: 28/03/2007, 10h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo