возвращаемое значение из одного скрипта python в другой
у меня есть два файла: script1.py и script2.py. Мне нужно вызвать script2.py от script1.py и вернуть значение из script2.py обратно script1.py. Но прикол на самом деле script1.py работает script2.py через ОС.
script1.py:
import os
print(os.system("script2.py 34"))
script2.py
import sys
def main():
x="Hello World"+str(sys.argv[1])
return x
if __name__ == "__main__":
x= main()
Как вы можете видеть, я могу получить значение в script2, но не обратно в script1. Как я могу это сделать? Примечание: script2.py должен быть вызван, как если бы его выполнение командной строки. Вот почему я я использую ОС.
2 ответов
хорошо, если я правильно вас понимаю, вы хотите:
- передать аргумент другому скрипту
- получить вывод из другого сценария в исходный вызывающий
Я рекомендую использовать модуль подпроцесса. Самый простой способ-использовать check_output ()
рекомендуемый способ вернуть значение из одного "скрипта" python в другой-импортировать скрипт в качестве модуля Python и вызвать функции напрямую:
import another_module
value = another_module.get_value(34)
здесь another_module.py
- это:
#!/usr/bin/env python
def get_value(*args):
return "Hello World " + ":".join(map(str, args))
def main(argv):
print(get_value(*argv[1:]))
if __name__ == "__main__":
import sys
main(sys.argv)
можно импортировать another_module
и запустить его как скрипт из командной строки. Если вам не нужно запускать его как скрипт командной строки, вы можете удалить