2016-05-14 5 views
0

Ich habe ein Skript, das wie folgt aussieht (Ich habe alle erforderlichen Module importiert.):Sense STRG + X, während raw_input>

def _find_getch(): 
try: 
    import termios 
except ImportError: 
    # Non-POSIX. Return msvcrt's (Windows') getch. 
    import msvcrt 
    return msvcrt.getch 

# POSIX system. Create and return a getch that manipulates the tty. 
import sys, tty 
def _getch(): 
    fd = sys.stdin.fileno() 
    old_settings = termios.tcgetattr(fd) 
    try: 
     tty.setraw(fd) 
     ch = sys.stdin.read(1) 
    finally: 
     termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) 
    return ch 

return _getch 

getch = _find_getch() 
#keypress for CTRL+X is 88 

if len(sys.argv) == 1: 
    controlPressed = False 
    file = '' 
    while not controlPressed: 
     latest = raw_input("> ") 
     key = getch 
     if key == '<function _getch at 0x7f9602558e60>': 
      controlPressed = True 
      sys.exit() 

ich dieses Skript im Terminal und es erkennt nicht, wenn ich CTRL drücken + X. Wie würde ich fühlen CTRL + X während raw_input läuft?

+0

Der Einzug scheint falsch zu sein. Bitte beheben Sie, dass Ihr Code die einfache Syntaxprüfung besteht. Kopieren Sie vielleicht das gesamte Skript, fügen Sie es ein, fügen Sie den eingefügten Block ein und drücken Sie Strg-K, um es als Code einzurücken (dies ist eine Funktion der Stack Overflow-Desktopversion; wenn Sie sich auf einem mobilen Gerät befinden, wechseln Sie möglicherweise vorübergehend zu " vollständige Website "anzeigen von dem Link in der Fußzeile auf dieser Seite). – tripleee

+0

@tripleee Als ich den Code postete, war ich nicht auf Handy, ich war auf meinem Laptop. Die Strg-K scheint sehr nützlich zu sein, ich werde es ausprobieren! Ich bin mir nicht sicher, ob ich vor dem zweiten Kommentar alles einrücken soll, all den Code, den ich in einem Gist oder auf SO gefunden habe. Alles achtern, das ist gut. Gibt es ein anderes Modul, mit dem ich Tasten drücken kann? –

+0

Der Einzug ist immer noch falsch; Für ein offensichtliches Beispiel kann das "try" nach dem "def" nicht eingerückt werden. Wir können sagen, dass es falsch ist, aber versuchen zu erraten, wie es sein sollte, ist fast unmöglich, sobald Sie mehr als ein paar Einrückungsniveaus haben. Nochmals: Bitte korrigieren Sie Ihren Code; Es gibt keine Möglichkeit, Ihnen zu helfen, wenn die Teile, über die Ihre Frage * nicht zutrifft, nicht richtig funktionieren. – tripleee

Antwort

-1

Die Funktion _getch hat nicht ordnungsgemäß funktioniert.

+0

Könnten Sie Ihre Endlösung und Code zur Verfügung stellen? –

+0

@MoonCheesez Ich habe nie eine Lösung gefunden. : / –

Verwandte Themen