当前位置: 首页 > news >正文

PyAutoGUI 第2章 键盘全功能操作教程

PyAutoGUI 键盘全功能操作教程(核心2)

说明:本教程为 PyAutoGUI 核心操作专项教程,聚焦键盘全功能操作,包含详细参数说明、实操代码、注意事项,适配新手入门,可直接复制代码调试运行。所有操作均基于 PyAutoGUI 基础环境已安装完成(若未安装,可参考基础教程完成环境配置;中文输入需额外安装 pyperclip 库)。

2.1 文本输入

PyAutoGUI 提供多种文本输入方式,可满足英文、中文输入需求,同时支持设置输入间隔,避免因输入过快被系统检测为异常操作,适配各类场景。

1. 英文输入:write() / typewrite()
  • 作用:向当前激活的输入框(如记事本、浏览器地址栏)输入英文、数字、符号,两个方法功能完全一致,可互换使用(typewrite() 为旧版本方法,write() 为新版本推荐方法)。

  • 语法:

  • pyautogui.write(text, interval=0)

  • pyautogui.typewrite(text, interval=0)

  • 参数说明:

  • text:必传参数,要输入的英文、数字、符号(字符串格式);

  • interval:可选参数,每个字符的输入间隔(单位:秒),默认 0(瞬间输入),设置后可实现慢速输入。

  • 示例代码:

importpyautoguiimporttime# 基础配置(提升脚本稳定性)pyautogui.PAUSE=1pyautogui.FAILSAFE=True# 1. 瞬间输入英文文本(无间隔)pyautogui.write("Hello PyAutoGUI! 123456")time.sleep(1)# 2. 慢速输入(每个字符间隔0.2秒,防检测)pyautogui.write("I love Python programming.",interval=0.2)time.sleep(1)# 3. 旧方法 typewrite()(与 write() 功能一致)pyautogui.typewrite("PyAutoGUI Keyboard Tutorial",interval=0.1)
2. 中文输入解决方案(pyperclip 剪贴板复制粘贴)
  • 注意:PyAutoGUI 的 write()/typewrite() 方法不支持直接输入中文,需借助 pyperclip 库(剪贴板操作)实现中文输入,步骤为:复制中文文本 → 粘贴到输入框。

  • 前置操作:安装 pyperclip 库(命令行输入:pip install pyperclip)。

  • 核心逻辑:用 pyperclip.copy() 复制中文 → 用 pyautogui.hotkey() 调用“Ctrl+V”粘贴,实现中文输入。

  • 示例代码(中文输入完整流程):

importpyautoguiimportpyperclip# 导入剪贴板库importtime pyautogui.PAUSE=1pyautogui.FAILSAFE=True# 1. 打开记事本(模拟输入场景,可替换为其他输入框)# 假设记事本图标坐标为 (100, 200),双击打开pyautogui.moveTo(100,200,duration=1)pyautogui.doubleClick()time.sleep(2)# 等待记事本打开# 2. 中文输入(剪贴板复制粘贴法)chinese_text="PyAutoGUI 键盘操作教程,支持中文输入!"pyperclip.copy(chinese_text)# 复制中文文本到剪贴板pyautogui.hotkey("ctrl","v")# 粘贴文本(Ctrl+V)time.sleep(1)# 3. 中英文混合输入mix_text="中文+English:PyAutoGUI 真好用!"pyperclip.copy(mix_text)pyautogui.hotkey("ctrl","v")
3. 输入间隔 interval 参数(慢速输入防检测)
  • 作用:设置每个字符的输入间隔,模拟人类手动输入速度,避免因瞬间输入大量字符被系统、软件检测为异常(如网页表单、登录界面)。

  • 实用建议:间隔设置为 0.1-0.3 秒,既自然又不易被检测,根据实际场景调整。

  • 示例代码(防检测慢速输入):

importpyautoguiimporttime pyautogui.PAUSE=1pyautogui.FAILSAFE=True# 模拟网页表单输入(慢速输入,间隔0.2秒)pyautogui.write("test123456",interval=0.2)# 账号输入pyautogui.press("tab")# 切换到密码框(后续会讲 press 方法)pyautogui.write("password789",interval=0.3)# 密码慢速输入,更安全

2.2 单个按键按下/松开

针对单个按键的操作,PyAutoGUI 提供“单次按下”“长按不松”“手动松开”三种方式,同时支持上下文管理器自动释放按键,灵活适配不同场景(如长按回车、长按删除)。

1. 单次按下:press(key)
  • 作用:按下并立即松开单个按键,相当于手动按一下按键(如按回车、按空格)。

  • 语法:pyautogui.press(key)

  • 参数说明:key 为按键名称(字符串格式),具体按键名称参考 2.4 按键对照表(如 "enter"、"space"、"backspace")。

  • 示例代码:

importpyautoguiimporttime pyautogui.PAUSE=1pyautogui.FAILSAFE=True# 1. 按下回车(enter)pyautogui.press("enter")time.sleep(1)# 2. 按下空格(space)pyautogui.press("space")time.sleep(1)# 3. 按下退格(backspace),删除前一个字符pyautogui.write("test")time.sleep(1)pyautogui.press("backspace")# 删除最后一个字符 "t"
2. 长按不松:keyDown()、松开:keyUp()
  • 作用:手动控制按键的“按下”和“松开”,实现长按效果(如长按退格删除、长按方向键滚动),需搭配使用(按下后必须松开,否则按键会一直处于按下状态)。

  • 语法:

  • pyautogui.keyDown(key) # 按下按键,不松开

  • pyautogui.keyUp(key) # 松开之前按下的按键

  • 示例代码(长按操作):

importpyautoguiimporttime pyautogui.PAUSE=1pyautogui.FAILSAFE=True# 1. 长按退格键(3秒),删除多个字符pyautogui.write("hello world")time.sleep(1)pyautogui.keyDown("backspace")# 按下退格不松开time.sleep(3)# 长按3秒,删除多个字符pyautogui.keyUp("backspace")# 松开退格键# 2. 长按方向键右(2秒),移动光标pyautogui.keyDown("right")time.sleep(2)pyautogui.keyUp("right")
3. 上下文管理器:with pyautogui.hold('shift'):(自动释放按键)
  • 作用:无需手动调用 keyUp(),上下文管理器会自动在代码块执行完毕后释放按键,简化长按、组合按键操作,避免忘记松开按键导致异常。

  • 语法:with pyautogui.hold(key): # 按下key不松开

    代码块(在该代码块中,key 一直处于按下状态)

  • 示例代码(自动释放按键):

importpyautoguiimporttime pyautogui.PAUSE=1pyautogui.FAILSAFE=True# 1. 长按 shift 键,输入大写字母(自动释放 shift)withpyautogui.hold("shift"):pyautogui.write("hello")# 输入结果为 "HELLO"time.sleep(1)# 2. 长按 ctrl 键,配合 click 实现 Ctrl+点击(自动释放 ctrl)withpyautogui.hold("ctrl"):pyautogui.click(200,300)# 相当于 Ctrl+点击# 3. 长按 alt 键,配合 press 实现 Alt+F4(关闭当前窗口)withpyautogui.hold("alt"):pyautogui.press("f4")

2.3 组合快捷键(热键)

组合快捷键(如 Ctrl+C 复制、Ctrl+V 粘贴)是日常操作中最常用的功能,PyAutoGUI 提供 hotkey() 方法,自动处理按键的按下、释放顺序,无需手动控制 keyDown() 和 keyUp()。

1. 核心方法:hotkey(key1, key2, …, interval=0)
  • 作用:按顺序按下多个按键,然后按相反顺序松开,实现组合快捷键操作。

  • 参数说明:

  • key1, key2, …:必传参数,组合快捷键的按键(如 "ctrl", "c");

  • interval:可选参数,按键之间的按下间隔(单位:秒),默认 0,建议设置为 0.1 秒,避免按键冲突。

  • 常用快捷键示例代码:

importpyautoguiimportpyperclipimporttime pyautogui.PAUSE=1pyautogui.FAILSAFE=True# 1. 打开记事本,输入测试文本pyautogui.moveTo(100,200,duration=1)pyautogui.doubleClick()time.sleep(2)pyperclip.copy("测试组合快捷键:Ctrl+C、Ctrl+V、Ctrl+A")pyautogui.hotkey("ctrl","v")time.sleep(1)# 2. 常用组合快捷键pyautogui.hotkey("ctrl","a",interval=0.1)# Ctrl+A 全选文本time.sleep(1)pyautogui.hotkey("ctrl","c",interval=0.1)# Ctrl+C 复制选中内容time.sleep(1)pyautogui.press("enter")# 换行pyautogui.hotkey("ctrl","v",interval=0.1)# Ctrl+V 粘贴内容time.sleep(1)pyautogui.hotkey("ctrl","s",interval=0.1)# Ctrl+S 保存文件time.sleep(1)pyautogui.hotkey("alt","f4",interval=0.1)# Alt+F4 关闭记事本
2. 多键组合顺序、释放规则
  • 按下顺序:hotkey() 会按参数传入的顺序依次按下按键(如 hotkey("ctrl", "shift", "a"),先按 Ctrl → 再按 Shift → 最后按 A);

  • 释放顺序:按按下顺序的反方向释放(如上述组合,先释放 A → 再释放 Shift → 最后释放 Ctrl);

  • 注意事项:组合快捷键中,修饰键(Ctrl、Shift、Alt)需放在前面,功能键(C、V、A 等)放在后面,避免按键冲突。

  • 错误与正确示例对比:

# 错误示例:功能键在前,修饰键在后,会导致快捷键失效pyautogui.hotkey("c","ctrl")# 错误:先按 C,再按 Ctrl,不是 Ctrl+C# 正确示例:修饰键在前,功能键在后pyautogui.hotkey("ctrl","c")# 正确:Ctrl+C 复制

2.4 所有按键对照表 KEYBOARD_KEYS

PyAutoGUI 支持所有电脑常用按键,按键名称需严格按照以下对照表填写(区分大小写,均为小写),避免因按键名称错误导致操作失效。以下为高频常用按键,完整按键列表可通过 pyautogui.KEYBOARD_KEYS 查看。

常用按键对照表
  1. 基础输入按键:
  • 字母:"a", "b", …, "z"(小写,大写需配合 Shift 键);

  • 数字:"0", "1", …, "9";

  • 符号:"!", "@", "#", "$", "%", "&", "*", "(", ")", "-", "_", "+", "=", "[", "]", "{", "}", ";", ":", "'", """, ",", ".", "/", "?"。

  1. 功能按键:
  • 回车:"enter"(或 "return");

  • 空格:"space";

  • 退格:"backspace";

  • 制表符(Tab):"tab";

  • 大写锁定:"capslock";

  • shift 键:"shift"(左 shift 可写 "shiftleft",右 shift 可写 "shiftright");

  • ctrl 键:"ctrl"(左 ctrl 可写 "ctrlleft",右 ctrl 可写 "ctrlright");

  • alt 键:"alt"(左 alt 可写 "altleft",右 alt 可写 "altright");

  • windows 键:"win"(或 "super");

  • 删除键:"delete"(删除光标后字符);

  • 插入键:"insert"(切换插入/覆盖模式)。

  1. 方向键:
  • 上:"up";

  • 下:"down";

  • 左:"left";

  • 右:"right"。

  1. 功能键(F1-F12):
  • "f1", "f2", "f3", …, "f12"。
  1. 其他按键:
  • ESC 键:"esc";

  • PageUp 键:"pageup";

  • PageDown 键:"pagedown";

  • Home 键:"home";

  • End 键:"end"。

  • 查看完整按键列表代码:

importpyautogui# 打印所有支持的按键名称(共100+个,包含各类特殊按键)print(pyautogui.KEYBOARD_KEYS)

2.5 键盘实战:自动输入表单、自动快捷键操作

结合本章所有键盘操作,编写两个实战脚本,分别实现“自动填写网页表单”和“自动快捷键操作(文件管理)”,模拟日常办公场景,可直接修改参数适配自己的需求。

实战1:自动填写网页表单(英文+中文混合输入)

实战需求:

  1. 打开浏览器(假设浏览器图标坐标为 (200, 100));

  2. 输入网页地址(英文),按下回车进入页面;

  3. 等待页面加载,填写表单(英文账号、中文姓名、数字电话);

  4. 按下提交按钮(模拟点击,结合鼠标操作)。

完整实战代码:

importpyautoguiimportpyperclipimporttime# 基础配置pyautogui.PAUSE=1pyautogui.FAILSAFE=True# 1. 打开浏览器(双击浏览器图标)browser_x,browser_y=200,100# 浏览器图标坐标(需自行获取)pyautogui.moveTo(browser_x,browser_y,duration=1)pyautogui.doubleClick()time.sleep(3)# 等待浏览器打开# 2. 输入网页地址,按下回车进入页面pyautogui.write("https://example.com/form",interval=0.1)# 英文地址输入pyautogui.press("enter")time.sleep(5)# 等待页面加载(根据网络速度调整)# 3. 填写表单(假设表单输入框坐标已提前获取)# 3.1 填写英文账号(输入框坐标:300, 200)pyautogui.moveTo(300,200,duration=0.8)pyautogui.click()# 激活输入框pyautogui.write("test_user123",interval=0.1)time.sleep(1)# 3.2 填写中文姓名(输入框坐标:300, 250)pyautogui.moveTo(300,250,duration=0.8)pyautogui.click()chinese_name="张三"pyperclip.copy(chinese_name)pyautogui.hotkey("ctrl","v")time.sleep(1)# 3.3 填写数字电话(输入框坐标:300, 300)pyautogui.moveTo(300,300,duration=0.8)pyautogui.click()pyautogui.write("13800138000",interval=0.1)time.sleep(1)# 4. 点击提交按钮(提交按钮坐标:400, 350)pyautogui.moveTo(400,350,duration=0.8)pyautogui.click()print("表单自动填写完成!")
实战2:自动快捷键操作(文件管理)

实战需求:

  1. 打开文件资源管理器(Win+E 快捷键);

  2. 全选当前文件夹内文件(Ctrl+A);

  3. 复制文件(Ctrl+C);

  4. 切换到目标文件夹(假设坐标:500, 400),粘贴文件(Ctrl+V);

  5. 保存操作(Ctrl+S),关闭资源管理器(Alt+F4)。

完整实战代码:

importpyautoguiimporttime# 基础配置pyautogui.PAUSE=1pyautogui.FAILSAFE=True# 1. 打开文件资源管理器(Win+E 快捷键)pyautogui.hotkey("win","e",interval=0.1)time.sleep(3)# 等待资源管理器打开# 2. 全选当前文件夹内文件(Ctrl+A)pyautogui.hotkey("ctrl","a",interval=0.1)time.sleep(1)# 3. 复制文件(Ctrl+C)pyautogui.hotkey("ctrl","c",interval=0.1)time.sleep(1)# 4. 切换到目标文件夹(点击目标文件夹图标)target_folder_x,target_folder_y=500,400# 目标文件夹坐标(需自行获取)pyautogui.moveTo(target_folder_x,target_folder_y,duration=1)pyautogui.doubleClick()time.sleep(2)# 5. 粘贴文件(Ctrl+V)pyautogui.hotkey("ctrl","v",interval=0.1)time.sleep(2)# 6. 保存操作(部分文件夹需 Ctrl+S 保存,可选)pyautogui.hotkey("ctrl","s",interval=0.1)time.sleep(1)# 7. 关闭资源管理器(Alt+F4)pyautogui.hotkey("alt","f4",interval=0.1)print("文件自动复制粘贴完成!")
实操注意事项
  1. 脚本中的坐标(如浏览器图标、表单输入框),需通过上一篇鼠标教程中的“实时坐标监控脚本”获取,确保精准定位;

  2. 中文输入必须安装 pyperclip 库,若未安装,运行脚本会报错(命令行输入 pip install pyperclip 即可安装);

  3. 组合快捷键的按键顺序需正确(修饰键在前,功能键在后),避免按键冲突;

  4. 等待时间(time.sleep())需根据电脑运行速度、网络速度调整,确保操作连贯,避免因页面未加载完成导致操作失效;

  5. 运行脚本时,确保目标窗口(如浏览器、记事本)无遮挡,避免其他窗口干扰操作。

拓展提示

本章节实战脚本可灵活修改,比如替换为“自动登录软件”“自动填写表格”“自动发送消息”等场景,核心逻辑一致:激活输入框 → 输入内容(英文/中文) → 执行快捷键/点击操作,只需修改坐标、输入文本和等待时间即可。

http://www.jsqmd.com/news/701410/

相关文章:

  • 5G NR CSI数据集构建与感知算法实践
  • 英语前缀发音总结
  • py每日spider案例之某guang州ligong大学登录接口(webpack 难度高)
  • 从零构建AI Agent:LangChain实战指南与工作坊解析
  • Instagram 推独立应用 Instants,限时照片分享能否打击 Snapchat 等对手?
  • 10个提升数据科学效率的Python单行代码技巧
  • 大多数AI多代理系统都建错了:子代理与代理团队的本质差异
  • ChatArena多智能体对话框架:从原理到实战构建AI竞技场
  • 英伟达破5万亿美元背后:数据分析师拆解AI投资逻辑(2026版)
  • UniversalUnityDemosaics:5分钟掌握Unity游戏去马赛克终极方案
  • MyBatis中XML映射有哪些标签?
  • 编码器-解码器模型原理与Keras实现详解
  • 如何用PX4神经网络控制技术实现自适应无人机飞行:3个实战技巧
  • 一台笔记本就能跑五人团队:2026年百万美元solo founder的真实AI技术栈
  • 部署与可视化系统:Intel 平台性能榨干:YOLOv8 OpenVINO C++ 与 Python 双语部署全链路实战
  • PyTorch损失函数选择与优化实战指南
  • LSTM Seq2Seq模型实战:从零构建英法翻译系统
  • 微软智能体开发实战:基于Semantic Kernel与AutoGen的示例代码库解析
  • Gemma-4-26B-A4B-it-GGUF一文详解:MoE模型推理延迟分解与瓶颈定位方法
  • 分布式量子计算与NetQMPI框架解析
  • 苹果CEO库克9月卸任,25年老将特尔努斯接棒,回顾库克15年领导下的苹果变迁
  • php中的foreach循环?_?PHP中foreach循环的语法结构与遍历数组对象详解
  • AI代理评估:超越准确率的五大关键指标解析
  • Agent Network Protocol:构建多智能体协作网络的开放协议
  • 2026年口碑好的船用蝶阀/海水蝶阀高口碑品牌推荐 - 品牌宣传支持者
  • PyTorch一维张量操作指南:从基础到实践
  • RainbowGPT:本地化部署中文AI助手的技术架构与实战指南
  • Foam-Agent:基于大语言模型与多智能体的OpenFOAM自动化仿真框架
  • 轻量级应用沙盒化:基于Linux Namespaces与Cgroups的进程隔离实践
  • 2026Q2防爆油雾净化器标杆名录:集中式油雾分离器、集中式油雾回收器、集中式油雾收集器、集中式油雾过滤器、静电式油雾分离器选择指南 - 优质品牌商家