Python pynput.keyboard.write()重复发送相同文本和未请求的文本部分的文本

2024-05-04 02:56:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一些映射热键来传输一些文本。 使用pynput,我创建了一个函数来传输原始文本,另一个函数只传输数字。 使用pynput.keyboard.GlobalHotKeys,我已经为te第一个映射了“ctrl+alt+1”,为第二个映射了“shift+ctrl+alt+1”。 使用第一个快捷方式,将在所需序列之前打印一个“ª”字符(与正常使用这些键类似)。 使用第二个按钮,重复打印第一个文本(仅数字)(按键越多,打印文本的次数越多)。 例如:字符串“45.785.422/0001-25” ctrl+alt+1结果-ª45.785.422/0001-25 shift+ctrl+alt+1结果-45.785.422/0001-2545788542200012545785422000125457854220001254578542200012545785422000125457854220001254578542200012545.785.422/000。。。 守则:

from pynput import keyboard as kbd
import keyboard
from pynput.keyboard import Key, Controller
import re

txt_base = '45.785.422/0001-25'

# keyboard = Controller()


def send_text():
    keyboard.write(txt_base)


def clean_text():
    txt_array = re.findall(r'\d+', txt_base)
    txt_cln = ''.join(txt_array)
    keyboard.write(txt_cln)


hotkeys = kbd.GlobalHotKeys({
    '<ctrl>+<alt>+1': send_text(),
    '<ctrl>+<shift>+<alt>+1': clean_text(),
})

with hotkeys:
    hotkeys.join()

有人能帮我解决这些问题吗?Tks