标签字符显示不正确

时间:2019-01-10 21:35:33

标签: python pyautogui

以下内容无法显示主题标签?

import pyautogui
pyautogui.typewrite('#');

它显示'〜'。

3 个答案:

答案 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('#')