У меня много неприятностей, проходящей строку в инструмент OpenSSL командной строки с помощью подпроцесс питона так:питон подпроцесс с OpenSSL
process = subprocess.Popen(
["openssl", "rsa", "-in", pathFile, "-out", "id_rsa.out"],
stdin = subprocess.PIPE,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
shell=False
)
try:
process.communicate("some passphrase\n", timeout=2)
except:
process.kill() #openssl stays alive otherwise.
Код выше по тайм-ауту (с и без перенаправления ИПП в Popen). Я могу использовать openssl обычно через терминал просто отлично, но мне действительно нужно иметь возможность запускать это как часть моего скрипта python.
Любая помощь будет оценена по достоинству.
прочитал первую причину по: [? Почему бы просто не использовать трубу (POPEN())] (http://pexpect.readthedocs.org /en/stable/FAQ.html#whynotpipe). Найдите переключатель командной строки, который позволяет избежать передачи парольной фразы через tty или [использовать 'pexpect' или' pty.openpty() '] (http://stackoverflow.com/a/12471855/4279) – jfs
Это хорошо читать. Благодарю. – DiscoStu