为什么 python 写的是 ` 而不是 @

Why is python writing ` instead of @

所以我正在尝试编写一个垃圾邮件机器人来骚扰我不和谐的朋友(我知道我是邪恶的) 这是代码

import time
import pyautogui
time.sleep(10)
victim = "Saka"
f = open("spamtext", 'r')
for word in f:
    pyautogui.keyUp('shift')
    pyautogui.typewrite("@" + victim)
    pyautogui.press("enter")
    time.sleep(1)

问题是,输入的不是“@Saka”,而是“`Saka”。 我试过 pyautogui.keyUp('shift'),但还是不行,有什么想法吗? (也是我第一次在这里提问,如果我提供的信息不够多请见谅)

哈哈!这是一个有趣的post。为恶作剧干杯。

使用 pyautogui,它确实按下了键盘。想象一个人类机器人做得非常快。所以你需要传递你在键盘上按下的确切键来输出“@”

为此,可以使用功能热键。

为了方便按下热键或键盘快捷键,可以向 hotkey() 传递几个按键串,按顺序按下,然后按相反顺序释放。

在我的键盘上,我可以用 shift + 2 输出一个 @symbol,我认为它会是这样的:

pyautogui.hotkey('shift', '2')

我认为这个问题与您的键盘布局有关,
所以你可以在 ASCII 中打印 at sign,并确保它在任何地方都有效

import time
import pyautogui
time.sleep(10)
victim = "Saka"
at_sign = chr(64) # 64 is at-sign ascii character: @
f = open("spamtext", 'r')
for word in f:
    pyautogui.typewrite(at_sign + victim)
    pyautogui.press("enter")
    time.sleep(1)

谢谢大家的帮助!问题是日文键盘不能很好地与 pyautogui 配合使用,因为它有两种模式,英语和日语,它不断在这两种模式之间切换。我所要做的就是下载美国键盘,现在我觉得我的朋友们讨厌我...

感谢 Martin Castellon 的帮助!