如何使用_Getch?

时间:2019-01-13 20:36:47

标签: python cross-platform keypress getch

我想在我的代码中检测到一个按键,以仅在经过一定时间并且用户请求代码前进(必须跨平台)时才允许正在运行的进程前进。

问题是我正在使用Windows(因此我可以使用msvcrt),但是将运行我的代码的人可能(并且可能会)具有Linux或MacOS,并且我在网上找到了Danny Yoo(http://code.activestate.com/recipes/134892/)上的一些代码。应该做我想要的,但是我不知道如何正确使用它。我什至不知道如何将其导入到我的代码中,即使它位于同一目录中。

some_fn_2 <- function() {
  on.exit(return("Well, this works"))
  inside_fn <- function() {
    eval.parent(return("I wish"))
    stop()
  }
  inside_fn()
  return("I wish not")
}

some_fn_2()
[1] "Well, this works"

我尝试在代码中调用class _Getch: """Gets a single character from standard input. Does not echo to the screen.""" def __init__(self): try: self.impl = _GetchWindows() except ImportError: self.impl = _GetchUnix() def __call__(self): return self.impl() class _GetchUnix: def __init__(self): import tty, sys def __call__(self): import sys, tty, termios fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) try: tty.setraw(sys.stdin.fileno()) ch = sys.stdin.read(1) finally: termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) return ch class _GetchWindows: def __init__(self): import msvcrt def __call__(self): import msvcrt return msvcrt.getch() getch = _Getch() 并创建一个变量import _Getch,但我不认为这是我想要的。我想要的是让这个假定的跨平台getch来检测用户是否输入了getch = _Getch._Getch(),然后继续执行过程代码的下一部分。

0 个答案:

没有答案