python3:如何使用pnput按Ctrl + X(剪切)和Ctrl + V?

时间:2017-01-19 13:34:44

标签: python python-3.x keyboard key copy-paste

关注pynput documentation我试过这个“剪切”:

1:在编辑器中选择一些文字

2:使用快捷方式运行this_code.py(不离开活动窗口)

from pynput.keyboard import Key, Controller
keyboard = Controller()
with keyboard.pressed(Key.ctrl):
    keyboard.press('x')
    keyboard.release('x')

python控制台打开实际打印:^ X.键的组合是正确的,但它没有做它想做的事情:剪切选定的文本将其存储在剪贴板中。 (我不想将剪贴板内容存储在变量中,我想要一个Ctrl + C)

我想这个答案也将解决剩下的部分:Ctrl + V(过去一些将首先插入剪贴板的数据)

2 个答案:

答案 0 :(得分:0)

我认为您应该使用keyboard.type(msg)代替keyboard.press(key)

答案 1 :(得分:0)

我考虑了3件事:

  • 因为我在Mac上,组合是Command + X而不是Ctrl + X

  • 我只能使用keyboard.press(按下并不适合我,不知道为什么),

  • 对于特殊键,我必须使用他们的Key.value(因此,Key.ctrl变为Key.ctrl.value; Key.Shift变为Key.Shift.value ...)

    < / LI>

最后,这对我有用:

# I tested this code as it is in Mac OS
from pynput.keyboard import Key, Controller

keyboard = Controller()

# keyboard.press(Key.ctrl.value) #this would be for your key combination
keyboard.press(Key.cmd.value)
keyboard.press('x')
keyboard.release('x')
# keyboard.release(Key.ctrl.value) #this would be for your key combination
keyboard.release(Key.cmd.value)
  

即使这个问题有点陈旧,我也遇到了同样的问题,找到了适合我的解决方案。将来可能派上用场。