如何在Python中复制选中文本?解决pynput库无法执行Ctrl+C/Ctrl+V组合键的问题
解决pynput实现Ctrl+C复制组合键的问题
嘿,我懂你遇到的困扰了——单个按键和回车能正常触发,但组合键就卡壳对吧?别担心,pynput完全支持修饰键(比如Ctrl、Shift这类)的组合操作,只是得按正确的顺序来:先按住修饰键,按下再释放目标键,最后释放修饰键就行。
下面给你两种可行的实现方案:
方案1:用with语句(推荐)
with语句会自动帮你释放修饰键,能避免忘记释放导致按键卡住的问题,写法也更简洁:
from pynput.keyboard import Key, Controller keyboard = Controller() # 执行Ctrl+C复制操作 with keyboard.pressed(Key.ctrl): keyboard.tap('c') # tap方法等价于先press再release,一步到位
方案2:手动控制按键的按下与释放
要是你想更明确地把控每一步操作,可以手动调用press和release方法:
from pynput.keyboard import Key, Controller keyboard = Controller() # 按住Ctrl键 keyboard.press(Key.ctrl) # 按下并释放C键 keyboard.press('c') keyboard.release('c') # 释放Ctrl键 keyboard.release(Key.ctrl)
额外补充:实现Ctrl+V粘贴
用同样的逻辑,把'c'换成'v'就能实现粘贴操作:
with keyboard.pressed(Key.ctrl): keyboard.tap('v')
核心就是记住:组合键必须先按住修饰键,再操作目标按键,最后别忘了释放修饰键——with语句能帮你省去手动释放的步骤,是更省心的写法哦。
内容的提问来源于stack exchange,提问作者KryptonH




