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

Python 3.x中PyAutoGUI输入@符号失败及邮件编写问题求助

解决PyAutoGUI无法输入@符号的问题

嘿,这个坑我之前踩过!你遇到的问题大概率是键盘布局不匹配导致的——PyAutoGUI的typewrite()方法默认是按照美式QWERTY键盘布局来模拟按键的,如果你用的是其他布局(比如法语AZERTY键盘,从你输入的gmx.fr来看很可能是这种情况),直接输入@字符就会失效,因为不同布局下输入@的按键组合完全不一样。

给你几个靠谱的解决方案:

1. 模拟对应键盘的@组合键

先确认你自己的键盘上是怎么打出@的:比如法语AZERTY键盘里,@是按住AltGr(右侧Alt键)再按G;美式键盘是Shift+2。找到对应的组合后,用hotkey()方法来模拟:

# 先定位并点击输入框
a, b, c, d = pyautogui.locateOnScreen('email.png')
pyautogui.click(x=a, y=b, clicks=1, button='left')

# 拆分输入,用hotkey插入@
pyautogui.typewrite('test')
pyautogui.hotkey('altgr', 'g')  # 这里换成你键盘对应的组合键
pyautogui.typewrite('gmx.fr')

2. 用复制粘贴的方式(最通用)

不管什么键盘布局,复制粘贴都不会出错,只需要借助pyperclip库来操作剪贴板:

import pyautogui
import pyperclip

# 定位点击输入框
a, b, c, d = pyautogui.locateOnScreen('email.png')
pyautogui.click(x=a, y=b, clicks=1, button='left')

# 复制目标文本到剪贴板,再粘贴
pyperclip.copy('test@gmx.fr')
pyautogui.hotkey('ctrl', 'v')  # macOS环境换成('command', 'v')

记得先安装pyperclip:pip install pyperclip

3. 直接输入Unicode字符

@的Unicode编码是U+0040,你也可以直接用转义字符输入:

pyautogui.typewrite('test' + '\x40' + 'gmx.fr')

不过这个方法在部分系统或输入法环境下可能依然有问题,优先级不如前两个方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:36:38