You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PyWinAuto的type_keys方法中同时使用Python变量和按键命令?

在PyWinAuto的type_keys中同时使用变量和特殊按键命令的解决方案

你遇到的问题是PyWinAuto的type_keys方法用{}标记特殊按键(比如{ENTER}),而Python f-string同样用{}解析变量,两者语法冲突导致报错。以下是几种可行的解决办法:

方法1:转义f-string中的特殊按键大括号

在f-string里用双大括号{{}}来表示PyWinAuto需要的单大括号,这样f-string会把{{ENTER}}解析成{ENTER}传递给type_keys:

name = "chris"
app = application.Application(backend="uia").start("Notepad.exe")
writer_app = app.UntitledNotepad.child_window(title="Text Editor", auto_id="15", control_type="Edit").wrapper_object()
writer_app.type_keys(f"hi {name}"
                     "{{ENTER}}"
                     "bye")

方法2:拆分字符串拼接

将变量替换部分和特殊按键部分分开处理,再拼接成完整的输入字符串:

name = "chris"
app = application.Application(backend="uia").start("Notepad.exe")
writer_app = app.UntitledNotepad.child_window(title="Text Editor", auto_id="15", control_type="Edit").wrapper_object()
writer_app.type_keys(f"hi {name}" + "{ENTER}" + "bye")

方法3:分多次调用type_keys

如果逻辑更清晰,也可以拆分多次调用type_keys,分别处理变量文本和特殊按键:

name = "chris"
app = application.Application(backend="uia").start("Notepad.exe")
writer_app = app.UntitledNotepad.child_window(title="Text Editor", auto_id="15", control_type="Edit").wrapper_object()
writer_app.type_keys(f"hi {name}")
writer_app.type_keys("{ENTER}")
writer_app.type_keys("bye")

内容的提问来源于stack exchange,提问作者Christopher Denq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 20:18:34