我在 Ubuntu 中遇到了一个问题,这个问题似乎至少从 版本开始就一直存在20.04
。该问题似乎与处理不可打印字符(例如\n
、\t
和 )有关\e
。
以下 Python 代码片段演示了这个问题:
import sys
from pynput.keyboard import Controller, Key
keyboard = Controller()
message = ' '.join(sys.argv[1:])
keyboard.type(message.replace('\n', r'\n'))
在上面的代码中,如果我删除该.replace('\n', r'\n')
部分,脚本的运行速度会明显变慢。似乎换行符(和其他不可打印字符)的存在会减慢执行速度。
此问题并不局限于 Python 或pynput
库。我能够使用 重现此问题xlib
,并且它似乎是Ubuntu 上libxdo
(和xdotool
) pyautogui
、 和类似工具性能缓慢的根本原因。
有趣的是,这个问题在 Arch Linux 上不会发生。
我的问题是:有人能找出并解释为什么会发生这种情况吗?任何见解都将不胜感激。