打字机模拟器
一个简单的Python工具,可以将输入的文本以模拟键盘打字的形式输出到当前光标位置,直接模拟键盘按键操作。可以用于尽可以复制而不能粘贴的情况,例如某一些学习平台任务,用来提高作业完成效率。
功能特点
- 默认使用剪贴板内容作为输入来源,用户只需复制需要输出的文本
- 保持逐字符模拟键盘按键操作,无粘贴痕迹,展示真实打字效果
- 支持自定义打字速度(字符之间的延迟时间),可减慢打字速度
- 支持通过命令行参数提供文本或从文件读取文本内容
- 支持启动前等待一定时间,便于切换到目标窗口
import pyautogui
import pyperclip
import time
import argparse
import sysdef type_text(text=None, delay=0.005):"""模拟键盘打字效果,默认使用剪贴板内容"""if text is None:text = pyperclip.paste()print("使用剪贴板内容进行模拟打字...")for char in text:pyautogui.typewrite(char)time.sleep(delay)def main():# 参数解析parser = argparse.ArgumentParser(description='模拟键盘打字输出工具')parser.add_argument('-t', '--text', help='要输出的文本内容')parser.add_argument('-f', '--file', help='包含要输出文本的文件路径')parser.add_argument('-d', '--delay', type=float, default=0.005, help='字符间延迟(秒)')parser.add_argument('-w', '--wait', type=int, default=3, help='启动等待时间(秒)')args = parser.parse_args()# 获取文本内容text = args.textif not text and args.file:try:with open(args.file, 'r', encoding='utf-8') as f:text = f.read()except Exception as e:print(f"无法读取文件 {args.file}: {e}")sys.exit(1)# 等待并倒计时print(f"{args.wait}秒后开始输出文本,请切换到目标窗口...")for i in range(args.wait, 0, -1):print(f"倒计时: {i}秒", end='\r')time.sleep(1)print()# 执行打字try:type_text(text, args.delay)print("\n文本输出完成!")except Exception as e:print(f"发生错误: {e}")sys.exit(1)if __name__ == "__main__":main()