在 Linux 中获取键盘上下左右的方式主要有以下几种:
1. 使用 `keyboard` 模块:
```python
import keyboard
# 键盘事件
keyboard.on_press_key("up", lambda _: print("Up arrow pressed"))
keyboard.on_press_key("down", lambda _: print("Down arrow pressed"))
keyboard.on_press_key("left", lambda _: print("Left arrow pressed"))
keyboard.on_press_key("right", lambda _: print("Right arrow pressed"))
# 持续键盘事件
keyboard.wait()
```
2. 使用 `curses` 模块:
```python
import curses
# 初始化屏幕
screen = curses.initscr()
# 获取键盘输入
key = screen.getch()
if key == curses.KEY_UP:
print("Up arrow pressed")
elif key == curses.KEY_DOWN:
print("Down arrow pressed")
elif key == curses.KEY_LEFT:
print("Left arrow pressed")
elif key == curses.KEY_RIGHT:
print("Right arrow pressed")
# 释放资源
curses.endwin()
```
3. 使用 `pynput` 模块:
```python
from pynput import keyboard
# 定义回调函数
def on_press(key):
if key == keyboard.Key.up:
print("Up arrow pressed")
elif key == keyboard.Key.down:
print("Down arrow pressed")
elif key == keyboard.Key.left:
print("Left arrow pressed")
elif key == keyboard.Key.right:
print("Right arrow pressed")
# 键盘事件
listener = keyboard.Listener(on_press=on_press)
listener.start()
listener.join()
```
以上三种方式都可以实现在 Linux 下获取键盘上下左右的功能。具体选择哪种方式根据项目需求和个人偏好而定。`keyboard` 模块和 `pynput` 模块可以更好地控制键盘事件,而 `curses` 模块则提供了更丰富的终端控制功能。