Согласно документации по Python http://docs.python.org/library/subprocess.html, рекомендуется заменить os.popen классом Popen, сейчас у меня есть следующая команда:
import os
c = "openssl dgst -sha1 -sign /foo/1 /bar/1 | openssl enc -base64 -A"
my_value = os.popen(c).read()
Я понимаю, что Попен воспринимает команду как список строковых аргументов. Как бы то ни было, когда я пытаюсь передать pipe ("|"), она прерывается, потому что "|" имеет особое значение в bash, однако не уверен, как решить эту проблему.
Другая проблема заключается в том, что в экземплярах Popen нет метода read
, поэтому я не уверен, как можно просмотреть вывод.
Я использую Django Framework, поэтому, если в платформе есть также функция, которая может помочь, это тоже вариант.