Я совсем новичок в python, использовал perl в течение многих лет. Типичная вещь, которую я постоянно делаю в perl, - это открываю команду как pipe и присваиваю ее вывод локальной переменной для обработки. Другими словами:
"open CMD, "$command|";
$output=<CMD>;
это проще простого. Я думаю, что смогу сделать нечто подобное в python таким образом:
args=[command, args...]
process=subprocess.Popen(args, stdout=subprocess.PIPE)
output=process.communicate()
пока все хорошо. Теперь к главному вопросу...
Если я выполню эту команду с помощью ssh на нескольких платформах, я смогу затем отслеживать дескрипторы в perl внутри цикла select для обработки результатов по мере их поступления. Я нашел модули python select и poll, но не совсем уверен, как их использовать. В документации сказано, что poll будет принимать хэндл файла, но когда я пытаюсь передать переменную 'process' выше в poll.register(), я получаю ошибку, что она должна быть int или иметь метод fileno(). Поскольку Popen() использует stdout, я попробовал вызвать
poll.register(process.stdout)
и он больше не выдает ошибку, но вместо этого просто зависает.
Любые предложения/указатели, как заставить что-то подобное работать?