Создание CPP exe-отпечатков во входных данных скрипта Python - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть скрипт Python. Я хочу получить информацию из имеющегося у меня CPP .exe.

.exe печатает строку в консоли, используя printf.

Я хочу иметь возможность вставить эту строку в мой код Python.

Я хочу иметь возможность в своем коде Python сделать что-то вроде этого:

gyro_data = GetFromCommandLine(cpp.exe.run())

Также - у моего cpp.exe есть цикл, который работает вечно и продолжает кормить консоль строками.Можно ли это сделать?Или мне нужно сломать мой cpp exe, чтобы все время возвращать что-то вместо печати на экран?

1 Ответ

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

Я бы предложил использовать модуль subprocess .

Затем вы сможете сделать что-то вроде этого (этот код взят из их документации, для которой требуется Python 3.7)

subprocess.run(["ls", "-l", "/dev/null"], capture_output=True)

, который возвращает

CompletedProcess(args=['ls', '-l', '/dev/null'], returncode=0,
stdout=b'crw-rw-rw- 1 root root 1, 3 Jan 23 16:23 /dev/null\n', stderr=b'')

Для более ранних версий вы должны использовать subprocess.Popen как этот

your_process = Popen(['ls', '-l', '/dev/null'], stdout=subprocess.PIPE)
your_process.wait()

your_process_output = your_process.stdout().decode() # Here you will have a string

Этот фрагмент может быть очень легко заключен в одну функцию.

...