getch pour python  [RESOLU]

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
NestorDuc
Messages : 5
Enregistré le : mar. 19 juil. 2016 16:24

getch pour python

Message par NestorDuc » jeu. 16 févr. 2017 15:33

Bonjour,

Je souhaite récupérer la touche appuyée du clavier à la volée, sans appuyer la touche entrée et afficher uniquement la touche significative d'appuyée. Ceci dans une console SSH.

En bidouillant j'arrive à peu près à mes fins, sauf que je n'arrive pas à supprimer les "echo" dans le fichier ".sh".
Avez-vous une solution, merci.

Code : Tout sélectionner

Getch.sh ------------------------------------------------------------------------------------------------------------------
#!/bin/bash
echo -n ""            # obligatoire sinon plantage. -n pas de retour à la ligne
read -s -n1 -t0.5     # -s pas d'echo -n1 un seul caractere -t attendre 0.5 seconde
echo -n ""
car="$REPLY"
echo "$car" > rep.txt # met cela dans un fichier car sait pas transferer la reponse autrement

Getch.py ------------------------------------------------------------------------------------------------------------------
#!/usr/bin/env python
# -*- coding: utf8 -*- 
import os

def getch():
    os.system("bash getch.sh ")  
    # pas trouve comment tranferer une variable autrement
    fichier = open("rep.txt", "r")
    rep = fichier.read()
    fichier.close
    touche = rep[0:1]
    return touche

stop = ""
while stop <>"q":
    touche = getch()
    if touche == "q":
        stop = "q"
    else:
        if touche <> "":
        print (touche)
(J'ai pas trouvé comment conserver les indentations :oops: )

dyox
Raspinaute
Messages : 970
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

Re: getch pour python

Message par dyox » jeu. 16 févr. 2017 16:08

Bonjour,

Si c'est pour masquer l'affichage des echo, il faut rediriger la sortie avec "> /dev/null"
Modifié en dernier par dyox le jeu. 16 févr. 2017 16:53, modifié 4 fois.

NestorDuc
Messages : 5
Enregistré le : mar. 19 juil. 2016 16:24

Re: getch pour python

Message par NestorDuc » jeu. 16 févr. 2017 16:45

Merci pour votre réponse,

OK pour >/dev/null, mais cela n'a pas d'effet sur la fonction read.

[code]
#!/usr/bin/env python
# -*- coding: utf8 -*-
import os

stop = ""
while stop <>"q":
touche = os.system("read -s -p -n1 -t0.5 >/dev/null")
if touche == "q":
stop = "q"
else:
if touche <> "":
print (touche)
[/code]

dyox
Raspinaute
Messages : 970
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

Re: getch pour python  [RESOLU]

Message par dyox » jeu. 16 févr. 2017 16:52

Pour le transfère de variables,regardez sur http://www.framboise314.fr/une-interfac ... pberry-pi/ et le pdf raspberry (page 31) dans les sources (avant dernier).
Il arrive à faire passer des arguments avec la librairie sys entre python et php.

NestorDuc
Messages : 5
Enregistré le : mar. 19 juil. 2016 16:24

Re: getch pour python

Message par NestorDuc » mar. 21 févr. 2017 21:30

Merci pour l'idée du stockage sur un RamDisk. Pratique pour mettre les Log de mises au point.
A bientôt
ND

Répondre

Retourner vers « Python »