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 :

Auto completion (tab tab) [Python 3.X]


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cyberdocumentaliste

    Informations forums :
    Inscription : Janvier 2013
    Messages : 79
    Points : 70
    Points
    70
    Par défaut Auto completion (tab tab)
    Bonsoir, je cherche a réaliser une sorte d'autocomplétion comme sur un terminal. On rentre le début d'un fichier/dossier et on press tab pour compléter ou deux fois tab pour voir la liste des dossier/fichiers.

    J'ai regardé au niveau de readline mais je ne vois absolument pas comment faire.

    J'ai trouvé ceci:
    http://stackoverflow.com/questions/7...tion-in-python

    Je pensais faire quelque chose de pareil en stockant dans completer la liste des fichiers/dossiers récupérés par os.listdir mais, d'abord est-ce fonctionnel ? et existe-il une façon plus facile d'intégrer les shortcuts des prompts ?

    Merci et bonne soirée

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut ul
    Salut,

    Citation Envoyé par JokerAs Voir le message
    Je pensais faire quelque chose de pareil en stockant dans completer la liste des fichiers/dossiers récupérés par os.listdir mais, d'abord est-ce fonctionnel ?
    Ce sera fonctionnel si çà répond à votre besoin. Après la question est de savoir si vous avez des difficultés à adapté le code que vous avez récupéré et si oui, lesquelles.

    Citation Envoyé par JokerAs Voir le message
    et existe-il une façon plus facile d'intégrer les shortcuts des prompts ?
    Désolé mais je ne sais pas à quoi correspondent "les shortcuts des prompts".

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

  3. #3
    Membre régulier
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cyberdocumentaliste

    Informations forums :
    Inscription : Janvier 2013
    Messages : 79
    Points : 70
    Points
    70
    Par défaut
    Merci pour ton aide,


    Pour l'instant j'ai essayé un petit code trouvé sur stackover:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    def completer(text, state):
      return (
        [entry + "/" for entry in os.listdir(
          os.path.dirname(
            readline.get_line_buffer())
          ) if entry.startswith(text)][state])
     
    def main():
      readline.parse_and_bind("tab: complete")
      readline.set_completer(completer)
      inputt = input()
      print(inputt)
     
     
    if __name__ == '__main__': main()
    Cependant quand je fais tab, j'ai une tabulation au lieu d'une completion.


    Quand je parle des shortcuts prompt, c'est du genre tab pour completer, les ctrl pour changer de terminal etc ... (y'en a pas beaucoup). Je les appelles comme ça mais je ne sais pas si se sont les bons termes.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Le code mentionné dans l'URL de votre premier post fonctionne.
    Pour comprendre comment il fonctionne, le debugger ou des "print" sont faciles à placer.
    Avec les "list compréhension", c'est plus sportif...

    Pourquoi ne pas essayer avec la première solution ?

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

  5. #5
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 986
    Points : 9 361
    Points
    9 361
    Par défaut
    hello,
    le code qui va suivre fonctionne dans un terminal linux (ubuntu). Il fait l'autocomplétion des noms de fichiers et répertoires.

    test_autocompletion.py :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import readline, glob
    def complete(text, state):
        return (glob.glob(text+'*')+[None])[state]
     
    readline.set_completer_delims(' \t\n;')
    readline.parse_and_bind("tab: complete")
    readline.set_completer(complete)
    input('fichier ? ')
    dans un terminal, tapez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    user@ubuntu-computer :~$  python3 test_autocompletion.py
    Je ne sais pas si il fonctionne sous d'autres O.S et à l'intérieur d'un interpréteur ou ide.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  6. #6
    Membre régulier
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cyberdocumentaliste

    Informations forums :
    Inscription : Janvier 2013
    Messages : 79
    Points : 70
    Points
    70
    Par défaut
    Merci pour votre aide.

    En fait, étant donné que je suis sous un autre système, il fallait rajouter une directive.

    Tout fonctionne

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

Discussions similaires

  1. auto completion
    Par Blo0d4x3 dans le forum Composants
    Réponses: 14
    Dernier message: 03/06/2009, 17h08
  2. Auto-Completion dans Eclipse
    Par trino dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 22/01/2007, 13h00
  3. [VC++ 8] Coloration syntaxique et auto completion
    Par 5:35pm dans le forum VC++ .NET
    Réponses: 9
    Dernier message: 24/10/2006, 11h44
  4. Auto Completion avec un JComboBox
    Par jeffciara dans le forum AWT/Swing
    Réponses: 17
    Dernier message: 19/10/2006, 08h37
  5. auto completion sous crimson
    Par Australia dans le forum ASP
    Réponses: 4
    Dernier message: 13/07/2006, 12h50

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