You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在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:手动控制按键的按下与释放

要是你想更明确地把控每一步操作,可以手动调用pressrelease方法:

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

火山引擎 最新活动