Как автоматически вводить многострочные ответы на вопросы в терминале с Python?

Я выполняю это в командной строке из приложения командной строки, написанного в Node:

openapi2apigee generateApi petStore -s '/Users/rafaelpaz/Documents/python/mapping-api_0.0.3.yml' -d /Users/rafaelpaz/Documents/python -D

Это в основном связано с моей учетной записью Google Apigee и генерирует некоторые файлы для меня локально. После того, как сгенерированные файлы (с подключением, все еще открытым из командной строки) на терминале, я должен ввести некоторые входы и нажать Enter на моей клавиатуре для каждого из этих входов, чтобы добиться того, что я хочу, а именно развернуть эти файлы в моем Google аккаунт apigee (не вдаваясь в подробности, так как это выходит за рамки вопроса). Вот о чем я говорю:

Хотелось бы узнать, есть ли у кого-нибудь пример того, как сделать это автоматически на python, я имею в виду ввод всех этих входных данных. У меня будет веб-приложение на Python, поэтому этот код будет внутри конечной точки.

1 ответ

Самый простой способ сделать это - через вызывающую оболочку. Там, где вы используете Bash (как мы обсуждали в комментариях), вы можете использовать буквальный heredoc, который вводит несколько строк ввода в стандартный ввод процесса.

Во-первых, пример синтаксиса:

command <<'EOF'
input to command
more input
EOF

Итак, этот случай:

openapi2apigee generateApi petStore -s '/Users/rafaelpaz/Documents/python/mapping-api_0.0.3.yml' -d /Users/rafaelpaz/Documents/python -D <<'EOF'
https://api.enterprise.apigee.com
[organization]
[user id]
[password]
test
default
EOF
Другие вопросы по тегам