标签字符显示不正确

Hashtag character not displaying correctly

以下无法打印主题标签?

import pyautogui
pyautogui.typewrite('#');

它打印'~'。

Pyautogui 依赖于键盘布局。

您可以尝试将您的键盘布局切换为美式键盘布局(这是 Pyautogui 的基础)。例如,加拿大法语键盘布局有一个 #,而通常 ~ 键所在的位置,这可以解释您遇到此行为的原因。

正如 Sean Kennedy 所说,这是一个键盘布局问题。他们仍在努力支持非美式英语键盘布局。

https://github.com/asweigart/pyautogui/issues/137

幸运的是你有英文键盘布局,所以你遇到的问题会少得多,你应该能够修补它们。您可以通过编辑 _pyautogui_win.py:

来重新定义某些键是否需要 shift
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.[=16= 中进行编辑是好是坏]

我应该继续阅读。 isShiftCharacter 可能会变成兔子洞:

By the way: Deleting #,+,< in the following function, did NOT work (util.py in .\pyautogui):

def isShiftCharacter(character): return character.isupper() or character in '~!@#$%^&*()_+{}|:"<>?'

Maybe .isupper() regards these characters as upper? I didn't check further

如果 pyautogui 不适用于 #,我认为这可以作为替代方案

import keyboard
keyboard.write('#')