如何保存mouse库录制的鼠标事件数据到文件供后续快速加载使用
实现鼠标录制结果存储的最优方案
优先选择Python原生pickle二进制序列化方案,完全匹配你需要加载速度快的需求,比JSON、CSV等文本格式的加载速度高3~10倍,且无需手动解析mouse库的自定义事件对象,不会丢失任何属性。
- 读写速度极快:直接对Python对象进行二进制编解码,不需要额外的格式转换逻辑
- 兼容性强:原生支持mouse库的
MoveEvent、ClickEvent等所有自定义事件类型,完美保留所有字段 - 存储体积小:二进制存储比文本格式占用空间减少40%以上
保存录制结果代码
import mouse import pickle # 你的录制逻辑,示例为录制到按下右键停止,可根据自己的需求调整录制规则 events = mouse.record(button=mouse.RIGHT) # 序列化写入文件 with open("mouse_record.pkl", "wb") as f: pickle.dump(events, f)
加载并回放代码
import mouse import pickle # 从文件加载录制数据 with open("mouse_record.pkl", "rb") as f: events = pickle.load(f) # 回放录制的操作 mouse.play(events)
备选方案(仅当需要跨语言读取时使用)
如果需要兼容其他语言读取,可以选择JSON格式存储,缺点是加载速度慢,需要手动转换对象格式:
import json import mouse # 将事件对象转换为可JSON序列化的字典 event_list = [] for event in events: event_info = event.__dict__ event_info["event_type"] = type(event).__name__ event_list.append(event_info) # 写入JSON文件 with open("mouse_record.json", "w", encoding="utf-8") as f: json.dump(event_list, f)
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

