Python直接控制鼠标和键盘
由于学期结束,我写博客已经很长时间了。今天,博主发现了一个有趣的模块PyAutoGUI,借助该模块,可以使用Python脚本直接控制键盘和鼠标,而且我认为它可以解决许多无聊的机械运动。在这里记录学习情况
安装
$ sudo pip install pyautogui
可能安装了更多的依赖软件包,请耐心等待
基本用法
screenWidth, screenHeight = pyautogui.size() # 屏幕尺寸
mouseX, mouseY = pyautogui.position() # 返回当前鼠标位置,注意坐标系统中左上方是(0, 0)

为了使用户可以随时干预鼠标和键盘操作,一种更好的方法是添加一个暂停或强制结束,否则,如果要停止鼠标并保持摇晃,将会失去控制。这是两个对应的设置
pyautogui.PAUSE = 1.5 # 每个函数执行后停顿1.5秒
pyautogui.FAILSAFE = True # 鼠标移到左上角会触发FailSafeException,因此快速移动鼠标到左上角也可以停止
鼠标操作动作
w, h = pyautogui.size()
pyautogui.moveTo(w/2, h/2) # 基本移动
pyautogui.moveTo(100, 200, duration=2) # 移动过程持续2s完成
pyautogui.moveTo(None, 500) # X方向不变,Y方向移动到500
pyautogui.moveRel(-40, 500) # 相对位置移动
拖动
# 点击+向下拖动
pyautogui.click(941, 34, button='left')
pyautogui.dragRel(0, 100, button='left', duration=5)
点击
pyautogui.click(300, 400, button='right') # 包含了move的点击,右键
pyautogui.click(clicks=2, interval=0.25) # 双击,间隔0.25s
滚轮
pyautogui.scroll(-10)
通过键盘操作输入文字
只需单击对话框以输入文本,但中文似乎无效
pyautogui.click(1279, 374)
pyautogui.typewrite('hello world!')
精确控制键盘
以下是手动输入中文的方法
pyautogui.press('shift') # 切换输入法的中英文
pyautogui.press(['#', ' ']) # press 可以对单个字符或者列表进行操作
pyautogui.press(['x', 'i', 'a', 'o'])
pyautogui.press(['y', 'u'])
pyautogui.press(['w', 'e', 'i'])
pyautogui.press(['l', 'a', 'n'])
pyautogui.press(' ')
# 潇雨危栏
hotKey
pyautogui.hotkey('shift', 'a') # 可以使用组合键,本质上是
'''
pyautogui.keyDown('shift')
pyautogui.keyDown('a')
pyautogui.keyUp('shift')
pyautogui.keyUp('a')
'''
摘要
PyAutoGUI模拟鼠标和键盘的输入。感觉机器正在被脚本操纵。尚未考虑过特定的应用程序,它似乎能够解决某些爬网程序问题。该库的灵活性在于应用程序独立性,而缺点在于它。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-376254-1.html
在中国出现这样的事真是平常而又平常的