Я немного смущен тем, что происходит. Я хочу подсчитать, сколько строк возвращается, чтобы увидеть, работает ли процесс или нет. Я использую subprocess.Popen для запуска команды, чтобы я мог получить результат. Однако, проверяя мой сценарий, я вижу дополнительный результат, на который я не рассчитывал, и мне просто интересно, почему и как его подавлять.Что это за дополнительный кортеж из Popen в python?
Вот фрагмент моего сценария. Пожалуйста, извините за любые опечатки от меня, дезинфицирующие его.
ssh = subprocess.Popen("ssh " + HOST + " ps -ef | grep jetty | wc -l", stdin=subprocess.PIPE, shell=True)
output = ssh.communicate()
print output
Вывод этого сценария:
1
(None, None)
документы говорят, что сообщаться возвращает кортеж (stdoutdata, stderrdata). Почему он возвращает 1, а затем (Нет, Нет)? Как подавить строку (сообщение None, None)?
Не запускайте этот вид материала через оболочку с подпроцесса. Это не требуется, и это усложнит вашу жизнь. Или используйте надлежащий клиент ssh Python, например. paramiko или автоматизировать оболочку ssh с помощью pexpect. – wim