如何补全行尾引号括号实现Ducky Script转Python pynput代码
Ducky Script STRING指令转Python代码实现方案
你可以通过逐行解析Ducky Script的方式实现转换,该方案扩展性更强,后续可方便添加对其他Ducky Script指令(如DELAY、ENTER等)的支持。
完整实现代码
import pynput.keyboard import time # 初始化pynput键盘控制器 keyboard = pynput.keyboard.Controller() # 读取Ducky Script输入,如需支持多行输入可替换为: # import sys # ducky_content = sys.stdin.read() ducky_content = input("Introduce your ducky code... \n") output_py = [] for line in ducky_content.splitlines(): line = line.strip() # 跳过空行 if not line: continue # 匹配STRING指令 if line.startswith("STRING "): # 提取STRING后的文本内容 type_content = line.removeprefix("STRING ") # 拼接为目标Python代码 output_py.append(f'keyboard.type("{type_content}")') # 后续可添加其他指令的处理逻辑,例如: # elif line.startswith("DELAY "): # delay_ms = int(line.removeprefix("DELAY ")) # output_py.append(f"time.sleep({delay_ms / 1000})") # 合并输出所有转换后的代码 result = "\n".join(output_py) print(result)
极简replace实现(仅适用于全为STRING指令的场景)
如果你只需要处理纯STRING指令的Ducky Script,也可以通过字符串拼接快速实现:
ducky = input("Introduce your ducky code... \n") # 先替换前缀,再给每行末尾补全引号和括号 py_code = "\n".join([line + '")' for line in ducky.replace("STRING ", 'keyboard.type("').splitlines()]) print(py_code)
内容的提问来源于stack exchange,提问作者MKing
相关产品推荐
相关产品推荐

