以下内容无法显示主题标签?
import pyautogui
pyautogui.typewrite('#');
它显示'〜'。
答案 0 :(得分:1)
Pyautogui与键盘布局有关。
您可以尝试将键盘布局切换为美国键盘布局(这是Pyautogui的基础)。例如,加拿大法文键盘布局中的#
键通常是~
,这可以解释您为什么会遇到这种情况。
答案 1 :(得分:0)
正如肖恩·肯尼迪所说,这是键盘布局问题。他们仍在努力支持非美式英语键盘布局。
https://github.com/asweigart/pyautogui/issues/137
幸运的是,您使用的是英文键盘布局,因此您所遇到的问题要少得多,并且应该能够对它们进行修补。您可以通过编辑_pyautogui_win.py
重新定义某些键是否需要移位:
def _keyDown(key):
if key not in keyboardMapping or keyboardMapping[key] is None: return
needsShift = pyautogui.isShiftCharacter(key)
# insert this code, exactly here:
if key == '#': needsShift = False
if key == '+': needsShift = False
if key == '<': needsShift = False
#print(key,needsShift) #####debug
# continue
来自: https://github.com/asweigart/pyautogui/issues/46#issuecomment-132640299
我自己没有看过代码,但是您可能会发现在 isShiftCharacter
内进行编辑是好是坏。
我应该一直读书。 isShiftCharacter可能会变成兔子洞:
顺便说一句:在以下函数中删除#,+,<无效 (..pyautogui中的util.py):
def isShiftCharacter(character):返回character.isupper()或 '〜!@#$%^&*()_ + {} | ::“ <>?'
中的字符也许.isupper()认为这些字符为大写?我没有检查
答案 2 :(得分:0)
如果pyautogui
对#
等不起作用,我认为这可以作为替代选择
import keyboard
keyboard.write('#')