You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅通过OS模块与文件操作在macOS和Linux系统的Python中获取键盘和鼠标原始数据

如何仅通过OS模块与文件操作在macOS和Linux系统的Python中获取键盘和鼠标原始数据

嗨,针对你想仅靠os模块和文件操作在macOS、Linux上获取键鼠原始数据的需求,我来给你捋捋实际可行的方案:

Linux系统的实现方案

  • 鼠标数据获取:你提到的/dev/input/mice确实是Linux下获取全局鼠标原始数据的常规路径,直接用Python以二进制模式打开这个文件,循环读取字节流就能拿到原始事件数据,完全可以结合os模块来做权限检查或者文件状态判断,不需要额外依赖。
  • 键盘数据获取:/dev/tty只能捕获当前终端窗口的输入,没法拿到全局键盘事件。正确的做法是读取/dev/input/event*系列设备文件——这些是Linux输入子系统暴露的事件节点,每个节点对应一个输入设备(比如键盘、鼠标、触控板)。你可以先读取/proc/bus/input/devices文件,从中筛选出标记为键盘的设备对应的event节点路径,然后以二进制模式打开该节点读取数据。注意:访问这些设备文件通常需要root权限,或者把你的用户添加到input用户组里。

macOS系统的限制与替代方案

这部分可能要泼点冷水:macOS的系统架构和安全机制和Linux差异很大,没有类似Linux那样直接暴露的、可通过文件操作读取的全局输入设备节点。

  • 鼠标数据获取:你之前听说的PyObjC是对的——要获取全局鼠标事件,必须借助Cocoa框架的事件监听接口,而PyObjC是Python与Cocoa框架交互的官方桥接。完全靠os模块和文件操作是做不到的,因为系统根本没提供这样的文件接口。
  • 键盘数据获取:和Linux一样,/dev/tty只能捕获当前终端的输入,无法拿到全局键盘事件。同样,要获取全局键盘数据也得依赖PyObjC调用Cocoa的事件API,没有纯文件操作的途径。

给你的实际建议

如果你坚持要做跨平台实现,那Linux端可以完全用os模块+文件操作搞定,但macOS端不得不引入PyObjC这个依赖——它算是macOS生态里最“轻量”的官方级依赖了,没有更精简的纯文件操作方案。

备注:内容来源于stack exchange,提问作者Borne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 11:09:30