Моя цель проста, у меня есть два сценария A и B, и оба они используют PyInquirer для обработки ввода от пользователя.
Script a.py:
from PyInquirer import prompt
def do():
questions = [
{
'type': 'input',
'name': 'inputa1',
'message': 'inputa1',
}
]
answers = prompt(questions)
# call b.py
if output_from_b == 1:
# do something AAA
else:
# do something BBB
if __name__ == "__main__":
do()
И скриптb.py почти такой же:
from PyInquirer import prompt
def do():
questions = [
{
'type': 'input',
'name': 'inputb1',
'message': 'inputb1',
}
]
answers = prompt(questions)
return answers["inputb1"]
if __name__ == "__main__":
do()
Как вы можете видеть, я хочу вызвать b.py из a.py и получить пользовательский ввод из b.py, а затем продолжить в.py с выходным результатом.
Я попытался:
f = os.popen("python3 b.py")
, чтобы вызвать b.py, но получил ошибку:
Traceback (most recent call last):
File "b.py", line 27, in <module>
do()
File "b.py", line 22, in do
answers = prompt(questions)
File "python3.7/site-packages/PyInquirer/prompt.py", line 75, in prompt
eventloop=eventloop)
File "python3.7/site-packages/prompt_toolkit/shortcuts.py", line 576, in run_application
output=create_output(true_color=true_color))
File "python3.7/site-packages/prompt_toolkit/shortcuts.py", line 126, in create_output
ansi_colors_only=ansi_colors_only, term=term)
File "python3.7/site-packages/prompt_toolkit/terminal/vt100_output.py", line 424, in from_pty
assert stdout.isatty()
AssertionError
Я не уверен, где goseнеправильно или есть другой способ сделать это.
Любой совет будет оценен, спасибо:)