Вызвать функцию python с аргументами и получить возвращаемое значение в autohotkey - PullRequest
0 голосов
/ 29 октября 2019

У меня есть скрипт на python с именем "server.py", и внутри него есть функция def calcFunction(arg1): ... return output Как я могу вызвать функцию calcFunction с аргументами и использовать возвращаемое значение в autohotkey? Это то, что я хочу сделать в autohotkey:

ToSend = someString ; a string
output = Run server.py, calcFunction(ToSend) ; get the returned value from the function with ToSend as argument
Send, output ; use the returned value in autohotkey

Я посмотрел онлайн, но, кажется, ничто не может полностью ответить на мой вопрос. Можно ли это сделать?

1 Ответ

1 голос
/ 31 октября 2019

Чтобы отправить ваши параметры в Python, вы можете использовать аргументы из вашего скрипта Python. Это можно сделать с помощью библиотеки sys:

import sys
print(sys.argv[0]) # name of file
print(sys.argv[1]) # first argument
print(sys.argv[2]) # second argument...

. С помощью скрипта AutoHotKey вы можете отправлять параметры скрипту Python, добавляя их в качестве аргументов сразу после указания имени файла:

RunWait, server.py "This will be printed as the first argument!" "This is the second!"

Затем, чтобы вернуть вывод функции в AHK, вы могли бы снова использовать sys, используя ее exit() функцию:

sys.exit(EXIT_NUMBER)

И обратно в AHK вы получаетеEXIT_NUMBER внутри переменной ErrorLevel. Соберите все вместе, ваш код должен выглядеть примерно так:

; AHK
RunWait, server.py "%ToSend%"

# Python
sys.exit(calcFunction(sys.argv[1]))

; AHK
MsgBox %ErrorLevel%
...