Я пытаюсь заставить несколько функций запускаться одна за другой, но мой код постоянно зацикливается. Я пытался реализовать multiprocessing
, как рекомендовал кто-то в этой ветке, но это не помогло. т помочь.
Моя функция отправляет фотографию в Clarifai, чтобы получить список ключевых слов, связанных с указанной фотографией, после чего я говорю PyAutoGUI щелкнуть где-нибудь на экране, если указанный список содержит слово, совпадающее с локальной переменной. Вот как выглядит одна функция:
def p1_click(keyword, p1, app, model):
p1_response = model.predict_by_filename(filename='/Users/raulrodriguez/CODE6_OS/scripts/captcha/saucissons/p1.png')
p1_concepts = p1_response['outputs'][0]['data']['concepts']
for concept in p1_concepts:
clean_list = list(map(lambda s: s.strip(), concept['name']))
while any(word == inflection.singularize(keyword) for word in concept['name'].split()) == True:
pyautogui.click(x=490, y=385)
break
if __name__=='__main__':
p1 = Process(target=p1_click(keyword, p1, app, model))
p1.start()
Очевидно, я пытаюсь сделать это для нескольких фотографий — 10, если быть точным — путем повторения предыдущего кода и замены p1
на номер фотографии (т. е. p2_click
... p2.start()
для фотографии с именем p2
) и изменения координаты значения оператора pyautogui.click
. Проблема, однако, в том, что, когда я собираю все вместе, мой курсор перемещается на координаты pyautogui.click
фотографии, для которой есть совпадение, и непрерывно щелкает. Я хотел получить цепную реакцию, при которой программа один раз нажимает на фотографию матча, а затем переходит к следующей. Если кто-то будет достаточно любезен, чтобы перезвонить, я был бы очень признателен за помощь.