有些场景需要重复输入同一段文本、命令或代码片段。与其一遍遍手动敲,不如先写一个最小可用的自动化输入脚本,把流程跑通,再根据自己的需要慢慢扩展。

这篇文章不讲复杂框架,只讲一个适合初学者上手的基础示例:从剪贴板读取内容,然后模拟键盘逐字输入,同时支持按空格键立即停止。

建议先在记事本、本地草稿或测试输入框中验证脚本行为,确认无误后再用于正式场景。

运行前准备

1. 安装 Python

先去 Python 官网安装 Python。版本建议优先选 3.12 或较新的稳定版本,不必一开始就追最新版本,这样第三方库的兼容性通常更稳。

安装完成后,可以先在终端里确认 Python 是否已经正常可用:

1
python --version

2. 安装依赖

这个示例一共会用到 3 个库:

  • pyautogui:负责模拟键盘输入。
  • keyboard:负责监听键盘,用来实现“按空格立即停止”。
  • pyperclip:负责读取剪贴板内容。

安装命令如下:

1
2
3
pip install pyautogui
pip install keyboard
pip install pyperclip

3. 新建脚本文件

可以在 VS Code 里新建一个 Python 文件,例如:

1
auto_typer.py

完整代码

下面是一份可以直接运行的最小示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import time

import keyboard
import pyautogui
import pyperclip


def auto_typer():
print("【自动输入脚本已启动】")
print("操作指南:")
print("1. 先把要输入的内容复制到剪贴板。")
print("2. 程序启动后,会预留 5 秒切换到目标输入框。")
print("3. 输入过程中按下空格键,可以立即停止程序。")
print("-" * 30)

time.sleep(5)

text = pyperclip.paste()
if not text:
print("错误:剪贴板为空。")
return

print("开始输入...(按下空格退出)")

for char in text:
if keyboard.is_pressed("space"):
print("\n检测到空格键,程序已停止。")
return

pyautogui.write(char)
# 如果你觉得输入过快,可以取消下一行的注释
# time.sleep(0.001)

print("\n输入完成。")


if __name__ == "__main__":
try:
auto_typer()
except KeyboardInterrupt:
print("\n程序已通过 Ctrl+C 关闭。")

代码结构拆解

如果你是第一次接触这类脚本,建议不要一上来就死记整段代码,而是先把结构看清楚。

1. 导入依赖

1
2
3
4
5
import time

import keyboard
import pyautogui
import pyperclip

这 4 个导入里:

  • time 用来做延迟,给你预留切换窗口的时间。
  • keyboard 用来监听停止按键。
  • pyautogui 用来模拟真实键盘输入。
  • pyperclip 用来直接读取剪贴板里的文本。

2. 主函数负责整个流程

1
def auto_typer():

这个函数把整个脚本串了起来,执行顺序很清晰:

  1. 先打印提示信息。
  2. 再等待几秒,让你切换到目标输入框。
  3. 然后读取剪贴板内容。
  4. 最后逐字模拟输入。

3. 预留切换窗口的时间

1
time.sleep(5)

这一步虽然简单,但非常实用。因为脚本一旦开始运行,输入就会直接发往当前获得焦点的窗口,所以通常都需要留一个缓冲时间,让你把光标移动到正确的位置。

4. 从剪贴板读取内容

1
2
3
4
text = pyperclip.paste()
if not text:
print("错误:剪贴板为空。")
return

这段逻辑主要解决两个问题:

  • 读取你刚刚复制的文本内容。
  • 如果剪贴板为空,就直接退出,避免脚本空跑。

5. 逐字输入,并在每次输入前检查停止键

1
2
3
4
5
6
for char in text:
if keyboard.is_pressed("space"):
print("\n检测到空格键,程序已停止。")
return

pyautogui.write(char)

这是整份脚本最核心的部分。

它的思路并不复杂:把整段文本拆成一个个字符,在每次真正发送按键之前,先检查一次空格键是否被按下。如果检测到停止指令,就立刻退出函数,不再继续输入。

6. 用 try / except 处理手动中断

1
2
3
4
5
if __name__ == "__main__":
try:
auto_typer()
except KeyboardInterrupt:
print("\n程序已通过 Ctrl+C 关闭。")

这一层不是必须的,但很实用。它能保证你在终端里按下 Ctrl + C 时,程序会更平稳地结束,而不是直接抛一串报错信息。

使用方法

写完脚本后,实际运行流程可以按下面这 5 步走:

  1. 先复制好你准备输入的文本。
  2. 在终端或 VS Code 中运行这个 Python 文件。
  3. 程序启动后,利用预留的 5 秒把光标切换到目标输入框。
  4. 等待脚本自动完成输入。
  5. 如果发现位置不对,或者不想继续执行,按空格键立即停止。

常见注意事项

1. 更适合英文、符号和代码片段

pyautogui.write() 在处理英文、数字、符号和代码片段时通常更直接。如果你的输入法处于中文状态,实际结果可能会受到输入法候选框和快捷键的影响。

如果你的目标内容主要是代码、命令或符号,运行前先切到英文输入法,稳定性通常会更好。

2. 如果输入速度太快,可以手动降速

如果你发现目标程序响应不过来,可以把下面这一行取消注释:

1
time.sleep(0.001)

这样每输入一个字符后,都会稍微停顿一下。虽然会变慢一点,但在某些输入框里会更稳定。

3. 如果输出结果异常,先检查焦点和热键冲突

这类脚本高度依赖当前窗口焦点。如果光标不在正确位置,或者目标软件本身有快捷键拦截、权限限制、输入框过滤等情况,最终输入结果就可能和预期不同。

比较稳妥的做法是:

  • 先在空白记事本里验证脚本行为。
  • 确认剪贴板内容无误。
  • 确认光标已经放到正确输入框。
  • 确认没有其他全局热键和它冲突。

总结

这篇文章介绍的是一个最小可用的 Python 自动化输入脚本:它能读取剪贴板内容、模拟逐字输入,并在必要时通过空格键或 Ctrl + C 手动停止。

如果后面你还想继续扩展,可以再往这个脚本里补这几类能力:

  • 自定义延迟时间
  • 指定开始热键
  • 日志输出
  • 只在特定程序窗口中执行

先把最小版本写明白,再一点点加功能,通常比一开始就写复杂版本更稳。