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 :

peut on faire un print temporaire (print pour un moment) [Python 2.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 56
    Par défaut peut on faire un print temporaire (print pour un moment)
    bonjour à tous,

    dans mon programme j'utilise une fonction qui selon les fichier qu'elle traite peut durer plus ou moins longtemps.
    je voudrais qu'au moment du traitement que je print : 'pleas wait...' et que à la fin j'affiche les resultats sans que le 'pleas wait...' ne soit toujours affiché.
    est ce possible ?.

    Merci.

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tsumey Voir le message
    je voudrais qu'au moment du traitement que je print : 'pleas wait...' et que à la fin j'affiche les resultats sans que le 'pleas wait...' ne soit toujours affiché.
    est ce possible ?.
    Bonjour

    Afficher "please wait" avant le traitement puis afficher "done" après. Eventuellement on peut essayer de jouer avec les caractères d'échappement qui permettent de positionner le curseur à une position X, Y (permet donc d'effacer une ligne affichée précédemment) mais ça dépend fortement du terminal.

    Ou alors on entre dans la programmation des IHM. C'est plus difficile mais ça permet de faire des interfaces graphiques (avec des menus, des listes déroulantes et des barres de progression)...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Tu peux essayer comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    # Ne pas oublier la virgule finale
    print 'Please wait ...',
     
    # Affichage des données
    print '\r'
    for d in donnees:
        print d
    Le "\r" a pour effet de ramener le curseur au début de la ligne.

    Toutefois, comme le fait remarquer Sve@r, la portabilité n'est pas garantie, ça marche ou pas.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 56
    Par défaut
    @ Sve@r : MErci, je crois que VinsS a concretiser ce que tu a proposé.

    @VinsS : j'execure mais ca ne marche pas


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def test(b):
        print '...please wait...'
        for i in range(10000): b+=1
        print '\r'
        print b
    ca donne ca. --->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> test(1)
    ...please wait...
     
    10001
    Merci

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par tsumey Voir le message
    @VinsS : j'execure mais ca ne marche pas
    N'est -il pas écrit dans le commentaire du code proposé par VinsS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # Ne pas oublier la virgule finale
    print 'Please wait ...',
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Citation Envoyé par tsumey Voir le message
    @ Sve@r : MErci, je crois que VinsS a concretiser ce que tu a proposé.

    @VinsS : j'execure mais ca ne marche pas


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def test(b):
        print '...please wait...'
        for i in range(10000): b+=1
        print '\r'
        print b
    ca donne ca. --->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> test(1)
    ...please wait...
     
    10001
    Merci
    Cela ne fonctionne pas chez moi dans le shell, par contre, cela fonctionne dans un terminal Ubuntu…
    Sinon, il est aussi possible d'effacer la page (mais toujours dans le terminal, pas dans le shell)!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import os
    os.system('clear')
    Clodion

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 56
    Par défaut
    Oui ça marche , merciiiii WIZTRICKS

    comment ai je pu zappé le commentaire... ^^'

    VinsS tu me fait sortir de l'impasse encore une fois, je te remercie encore.

    Merci Clodion, je travaille sur un terminal Unix, ça marche du coups

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

Discussions similaires

  1. Zoomer une Print area idéalement pour impression
    Par Lost_in_VBA dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/07/2011, 07h40
  2. Réponses: 1
    Dernier message: 28/06/2007, 12h23
  3. Réponses: 6
    Dernier message: 07/07/2006, 17h36

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