Как передать промежуточный объем данных в подпроцесс? - PullRequest
6 голосов
/ 23 сентября 2019

У меня есть некоторая предварительная обработка данных, которые я сделал в Python, которые я хочу передать в C-программу.Объем данных не очень большой - он состоит из «пакетов» в форме (int, str), где строки представляют собой строки одинаковой длины (скажем, ~ 80).У меня может быть около 40 из них, я должен пройти.Возможно, что в конечном итоге я смогу увеличить эти числа, но можно предположить, что длина строк <= 200, а их число <= 4000. </p>

Я планирую использовать subprocess внутри Python для управления выполнением программы на C, но мне интересно, каким будет «хороший» способ передачи данных в программу на C.Одним из решений было бы использование временных файлов, но это кажется довольно хакерским (и кажется, что у меня может быть «слишком мало» данных для этого, чтобы иметь смысл).В качестве альтернативы я мог бы передать все данные в качестве аргументов командной строки в subprocess.run, но здесь мне кажется, что у меня может быть «слишком много» данных, чтобы это имело смысл (но я не знаю - я оченьне инженер-программист).

Каков рекомендуемый способ выполнения этого "промежуточного" объема данных для передачи в подпроцесс?

1 Ответ

4 голосов
/ 23 сентября 2019

Вы можете сериализовать данные (используя json или аналогичные) и передать их в подпроцесс stdin.subprocess.run(input=...), например.

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