Я бы хотел, чтобы python отправлял около полумиллиона целых чисел в диапазоне 0-255 каждое в исполняемый файл, написанный на C ++. Этот исполняемый файл ответит несколькими тысячами целых чисел. Каждый на одной строке. Кажется, что это должно быть очень просто сделать с подпроцессом, но у меня были бесконечные проблемы. Сейчас я тестирую с кодом:
// main()
u32 num;
std::cin >> num;
u8* data = new u8[num];
for (u32 i = 0; i < num; ++i)
std::cin >> data[i];
// test output / spit it back out
for (u32 i = 0; i < num; ++i)
std::cout << data[i] << std::endl;
return 0;
Создание массива строк («данных»), каждая из которых похожа на «255 \ n», в python, а затем с использованием:
output = proc.communicate("".join(data))[0]
... не работает (говорит, что стандартный ввод закрыт, может быть, слишком много за один раз). Ни один из них не использовал proc.stdin и proc.stdout. Это должно быть очень просто, но я получаю постоянные исключения и / или мне не возвращаются выходные данные. Мой Попен сейчас:
proc = Popen('aux/test_cpp_program', stdin=PIPE, stdout=PIPE, bufsize=1)
Посоветуй мне, прежде чем я выдерну волосы. ;)