Справочная информация : я использую python и paramiko для автоматизации процесса, который я прохожу каждый раз, когда мне приходится сдавать программу для класса.Мы используем команду «handin» для отправки исходного кода, но это должно быть сделано со школьного компьютера.Поэтому, когда я отправляю код из дома, я должен: sftp на школьные серверы, поместить файлы в dir, ssh на школьный компьютер, использовать команду 'handin'
Я могу успешно поместить файлы на школьные машины.Проблема возникает, когда я пытаюсь использовать exec_command ('handin my files'), а затем читаю вывод для определения следующего действия.
, поэтому у меня есть
try:
(stdin, stdout, stderr) = client.exec_command(s)
except:
print 'whoops'
sys.exit()
print stdout.readlines()
Но это вызывает тупикпо какой-то причине сценарий, похоже, ничего не делает, и мне приходится в конечном итоге завершить весь процесс (ctrl + c не работает).Я не уверен, что exec_command не завершается правильно (даже если он выходит из блока try / catch) или у меня проблемы с сетью или что.
Есть идеи?
обновление:
Проблема связана с взаимодействием с командой handin во время выполнения.После выполнения команды handin может работать, а может и не работать.Если это первая отправка, это говорит об успехе, бла-бла, и заканчивает выполнение.Все хорошо.Но если я отправляю повторно, я должен разрешить перезапись (stdin.write ('y')) для каждого файла.
TL / DR:
Какпроверить, работает ли еще exec_command (), ожидает ли ввод и readline () из stdout соответственно?