Вы вызываете pyautogui.press ('space') в теле вашей программы, поэтому, даже если пользователь не печатает пробел, программа видит его как пробел.
Я думаю, что вы на правильном пути с использованием флагов. Однако, поскольку у нас нет кода, который обрабатывает пробел, я могу лишь попытаться понять, что может сработать.
Я предполагаю, что ваша функция обработки пространства называется space_handler.
def space_handler(a, b, c):
Давайте добавим глобальную переменную в space_handler.
in_user_input = True
def space_handler(a, b, c)
if not in_user_input:
return False
(....regular space handling)
Кроме того, места для изменения in_user_input:
in_user_input = False
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')
in_user_input = True
Похоже, вам просто нужен in_user_input вокруг pyautogui.press ('пробел'), но если кто-то вставит юникод 0020 (пробел), это потенциально означает случай с краем. Могут быть и другие крайние случаи. Но я думаю, что это должно работать в основном.
Надеюсь, это поможет, или, что лучше, вы уже все выяснили.