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 :

run avec bdb [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 105
    Par défaut run avec bdb
    Bonjour, mon code bloque si code demande une saisie et marche sans problème dans les autres cas.
    Par exemple un code qui marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    code="a=2\nprint(a)"
    stdin=""
    Par exemple un code qui bloque:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    code="a=input()\nprint(a)"
    stdin="2"
    La classe est assez complexe, la trace bloque ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class maclass(Bdb):
    ...
     
    stdin="2" #au lieu de '' 
    mglobals = {
               '__name__': '__main__', '__builtins__': __builtins__,
     
                '__stdin__': StringIO(stdin), '__stdout__': StringIO(),
     
                '__stderr__': StringIO(),
            }
            try:
                self.run(code, mglobals , mglobals ) #blocage ici
    Merci d'avance pour vos idées.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    input attend une fin de ligne pour terminer (mais peut être que fin de fichier marche aussi).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 105
    Par défaut
    En fait si je tape une valeur l’exécution se fait, donc il ne prend pas dans la valeur passée en argument.
    Mettre -W où ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Reformulez le problème autrement: "comment rediriger le stdin sur lequel va lire input?"
    Et, pourquoi utiliser input lorsque le stdin n'est pas standard?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 105
    Par défaut
    Imaginons que j'ai la chaine : Est-il possible d'appeler le fichier test.py dans une fonction de sorte que les valeurs 1 et 2 arrivent dans l'entrée standard de l’environnement test.py ?

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Pour rediriger le stdin, ceci fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import sys
    from io import StringIO
     
    count = 3
    f = StringIO('\n'.join(str(n) for n in range(count)))
     
    saved = sys.stdin
    sys.stdin = f
    for _ in range(count):
        print(input())
     
    sys.stdin = saved
    donc on peut le faire.

    Après je ne comprends pas trop ce que vous cherchez à faire...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 18
    Dernier message: 18/11/2013, 10h50
  2. Réponses: 3
    Dernier message: 27/05/2010, 09h18
  3. Application.run avec le nom de la macro complémentaire en paramètre
    Par ckrikri dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/02/2009, 10h57
  4. [VBA-E]Application.run avec paramètres
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/03/2007, 16h48
  5. run avec argument
    Par noussa_nouha dans le forum NetBeans
    Réponses: 12
    Dernier message: 14/08/2006, 22h43

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