Как отправить данные в терминал с помощью Python - PullRequest
0 голосов
/ 12 февраля 2019

Я хочу использовать python для отправки команды в терминал, и я делаю это с помощью:

subprocess.call('ask util generate-lwa-tokens')

Обычно в терминале мне будет предложено ввести свой идентификатор клиента.Как я могу отправить идентификатор клиента в подпроцесс?

Это изображение того, как это происходит с терминалом picture of what normally works

1 Ответ

0 голосов
/ 12 февраля 2019

Попробуйте подпроцесс , руководство .У вас есть опции с подпроцессом для работы с stdin, stdout и stderr процесса, который вы вызываете.

from subprocess import Popen, PIPE, STDOUT

p = Popen(['ask', 'util', 'generate-lwa-tokens'], stdout=PIPE, stdin=PIPE, stderr=STDOUT, universal_newlines=True)

# Storing the values that should be passed

values = ["client_id", "client_secret"]

# Interacting with the shell 
output, err = p.communicate(input=f'{values[0]}\n{values[1]}\n')
# Displaying outputs
print(output)

Попробуйте это и прокомментируйте, если есть какие-либо ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...