【发布时间】:2019-05-31 17:18:15
【问题描述】:
我正在进行的项目是一个使用 Unicode 字符的本地语言的打字工具。
我正在尝试开发一个程序,只要输入一个单词,它就会转换为相关的 Unicode 单词。 (它在按“空格”后识别一个单词。)
我发现如果按下并释放Ctrl+shift+u,则输入Unicode值,然后输入一个空格,将其转换为相关的Unicode字符。
例如
1) Ctrl+shift+u
2) 0d96
3) space
->> ඖ
所以,我用 pyautogui 开发了这个功能,它有助于在需要时按键。
如果需要,下面的“单词”会传递 u0dbbu0ddd 之类的值(而不是 \u0dbb\u0ddd )
import pyautogui
def type_unicode(word,lenth):
#word - converted unicode values
#length - length of the user typed word
#to erase user typed word
for x in range(lenth+1):
pyautogui.press('backspace')
for x in range(0,len(word),5):
# to press ctrl+shift+u
pyautogui.hotkey('ctrl', 'shift', 'u')
#Unicode letters for each word
pyautogui.typewrite(word[x+1:x+5])
pyautogui.press('space')
我在这里面临的问题是:当用户输入他的第一个单词时,它会很好地转换为 Unicode,但是已经转换的单词会立即作为另一个输入,并且程序会尝试再次将其转换为 Unicode。这无休止地发生。
我尝试了一个标志,但我无法解决它。
【问题讨论】:
-
您能提供更多关于 pyautogui 方法的信息吗?
-
本文档提供了所有必需的详细信息。 pyautogui.readthedocs.io/en/latest/keyboard.html
-
我认为这种方法更好。但如果有比这更好的方法,请提出建议。
-
为了更好地理解您的问题,可能有必要了解脚本的整个代码以及您使用该代码的环境,而不仅仅是函数。该函数在何处、何时以及如何被调用?如何使用特殊的键序列,例如"[b][s][backspace][backspace]" 在转换过程结束时发出(在 [space] 之前),然后可以将其识别为 autogui 而不是用户输入的单词,以便跳过使用函数已经转换的单词?
标签: python-2.7 ubuntu unicode pyautogui