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