Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 在Linux中使用Python模拟键盘按键

之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperclip这两个python库,但打开对话框后调用粘贴API无法进行粘贴,不知道为什么。然后发现了virtkey这个库,这个库可以在linux 中模拟键盘按键,但网上资料甚少。这个库主要有两个API1、press_keysym/release_keysym2、press_unicode/release_unicode第一个接受keysym作为参数,第二个接受键盘的unicode,键盘unicode用来模拟字母键还是很方便的,但要模拟Ctrl这样的键一直没找到方法,最终找到了一个关于keysym的表,解决了问题,表如下
.keysym  .keycode  .keysym_num  Key  
Alt_L  64  65513  左手边的Alt键  
Alt_R  113  65514  右手边的Alt键  
BackSpace  22  65288  BackSpace  
Cancel  110  65387  Pause Break  
Caps_Lock  66  65549  CapsLock  
Control_L  37  65507  左手边的Control键  
Control_R  109  65508  右手边的Control键  
Delete  107  65535  Delete  
Down  104  65364  方向键:下  
End  103  65367  End  
Escape  9  65307  Esc  
Execute  111  65378  系统调用  
F1  67  65470  F1  
F2  68  65471  F2  
Fi  66+i  65469+i  Fi  
F12  96  68481  F12  
Home  97  65360  Home  
Insert  106  65379  Insert  
Left  100  65361  方向键:左  
Linefeed  54  106  Linefeed(Ctrl-j)  
KP_0  90  65438  数字键:0  
KP_1  87  65436  数字键:1  
KP_2  88  65433  数字键:2  
KP_3  89  65435  数字键:3  
KP_4  83  65430  数字键:4  
KP_5  84  65437  数字键:5  
KP_6  85  65432  数字键:6  
KP_7  79  65429  数字键:7  
KP_8  80  65431  数字键:8  
KP_9  81  65434  数字键:9  
KP_Add  86  65451  运算键:+  
KP_Begin  84  65437  小键盘:5号键  
KP_Decimal  91  65439  “.”键  
KP_Delete  91  65439  Delete  
KP_Divide  112  65455  “/”键  
KP_Down  88  65433  方向键:下  
KP_End  87  65436  End  
KP_Enter  108  65421  Enter  
KP_Home  79  65429  Home  
KP_Insert  90  65438  Insert  
KP_Left  83  65430  方向键:左  
KP_Multiply  63  65450  运算键:*  
KP_Next  89  65435  PageDown  
KP_Prior  81  65434  PageUp  
KP_Right  85  65432  方向键:右  
KP_Subtract  82  65453  “-”键  
KP_Up  80  65431  方向键:上  
Next  105  65366  PageDown  
Num_Lock  77  65407  NumLock  
Pause  110  65299  Pause  
Print  111  65377  PrintScreen  
Prior  99  65365  PageUp  
Return  36  65293  回车键  
Right  102  65363  方向键:右  
Scroll_Lock  78  65300  ScrollLock  
Shift_L  50  65505  左手边的Shift键  
Shift_R  62  65506  有手边的Shift键  
Tab  23  65289  Tab  
Up  98  65362  方向键:上
至此,我们可以写出模拟Ctrl+V的代码import virtkey
import time
v = virtkey.virtkey()
v.press_keysym(65507) #Ctrl键位
v.press_unicode(ord("v")) #模拟字母V
v.release_unicode(ord("v"))
v.release_keysym(65507)
time.sleep(5)
v.press_keysym(65421) #Enter
v.release_keysym(65421)推荐阅读:Python脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htmPython文件处理:读取文件 http://www.linuxidc.com/Linux/2013-08/88496.htm如何发布自定义的Python模块 http://www.linuxidc.com/Linux/2013-08/88495.htmPython爬虫多线程抓取代理服务器 http://www.linuxidc.com/Linux/2013-07/87289.htmPython中re(正则表达式)模块详解 http://www.linuxidc.com/Linux/2013-08/88588.htmPython 的详细介绍:请点这里
Python 的下载地址:请点这里