1. 从零开始:PyAutoGUI键盘控制基础入门
如果你曾经幻想过让电脑自己动起来,比如自动填写表格、批量重命名文件,或者模拟一些重复的键盘操作,那么PyAutoGUI绝对是你的“梦中情库”。它就像一个虚拟的手指和键盘,能帮你完成所有枯燥的点击和敲击工作。今天,我们不聊鼠标,专门来深挖它的键盘控制能力。我用了这么多年,发现很多朋友对write()和press()的用法一知半解,更别提灵活组合热键了,结果脚本写出来总是磕磕绊绊。这篇文章,我就把我踩过的坑和总结的实战技巧,用最直白的话分享给你,保证你看完就能上手写出靠谱的自动化脚本。
首先,你得把PyAutoGUI请到你的电脑里。打开命令行,输入pip install pyautogui,回车等待安装完成就行,非常简单。安装好后,在Python脚本的开头,别忘了写上import pyautogui。这里有个非常重要的安全提示:因为PyAutoGUI会真实地控制你的键盘和鼠标,一旦脚本失控(比如陷入死循环疯狂输入),可能会造成麻烦。我强烈建议你在脚本开头加上这两行“保险丝”:
import pyautogui
pyautogui.FAILSAFE = True # 启用故障安全功能
pyautogui.PAUSE = 1 # 为每个函数动作添加1秒暂停
把FAILSAFE设为True后,你只需要快速将鼠标移动到屏幕的左上角(坐标(0,0)处),PyAutoGUI就会立刻抛出异常并停止所有操作,这是救命的功能。而PAUSE则是在每个动作之间强制加入停顿,比如每次按键后等1秒,这样脚本运行速度可控,你也有时间观察和中断。做好这些准备,我们就可以放心大胆地探索键盘控制的奇妙世界了。
2. 单键与文本输入:write() 与 press() 的精准操控
键盘操作最基础的无非两件事:输入一串文字,或者按下一个特定的键。PyAutoGUI用write()和press()这两个函数就把这事儿办妥了,但里面的门道可不少。
2.1 write():你的自动化打字员
write()函数就像雇了一个不知疲倦的打字员,你给它什么字符串,它就在当前光标位置一个字母一个字母地敲出来。它的核心作用就是模拟键盘输入文本。
import pyautogui
# 最基础的用法:瞬间打出“Hello world!”
pyautogui.write('Hello world!')
如果你觉得瞬间输出太快,不像真人操作,或者某些老旧程序处理不过来,可以加上interval参数。这个参数指定每个字符输入之间的间隔秒数,我实测下来,设置0.1到0.3秒之间效果最自然。
# 模拟真人打字,每个字符间隔0.25秒
pyautogui.write('Hello world!', interval=0.25)
这里有个新手常踩的“坑”:write()函数只能输入单个字符对应的键。什么意思呢?像‘a’、‘1’、‘!’这些都可以,但它无法直接模拟按下‘Shift’、‘Ctrl’、‘F1’这类功能键或修饰键。如果你想输入大写字母‘A’,不能直接写pyautogui.write(‘A’),因为write()会把它当成小写‘a’加上Shift键的组合,而它处理不了Shift。正确的做法是使用我们后面会讲到的hotkey()或者keyDown()/keyUp()组合。另外,write()对于中文等非ASCII字符的支持可能因系统和环境而异,对于复杂的文本输入,有时需要借助其他库(如pyperclip复制粘贴)来辅助完成。
2.2 press():功能键与方向键的指挥官
当你的自动化脚本需要按下回车确认、按ESC退出、或者用方向键导航时,press()函数就该登场了。它专门用来模拟按下并释放一个单独的键。
# 按下回车键,常用在输入完命令后
pyautogui.press('enter')
# 按下F1键,也许用来打开帮助文档
pyautogui.press('f1')
# 按下左方向键,在菜单或列表里移动
pyautogui.press('left')
press()函数非常灵活,它接受一个字符串参数,这个字符串必须是PyAutoGUI能识别的键名。这些键名通常很直观,比如‘enter’、‘esc’、‘tab’、‘space’(空格)、‘up

1142

被折叠的 条评论
为什么被折叠?



