В Python 2.x, os.popen(command, "b")
дает мне двоичный поток вывода данной команды. Это, прежде всего, важно в Windows, где двоичный файл и текстовые потоки на самом деле дают Вам различные байты.
subprocess
модуль, как предполагается, заменяет os.popen
и другие нерестящиеся API дочернего процесса. Однако документы преобразования не говорят о контакте с "b" режимом вообще. Как Вы получаете потоковое использование двоичного выхода subprocess
?
По умолчанию, если вы не выполняете Popen (..., universal_newlines = True)
.
class Popen(object):
[...]
def __init__(self, ...):
[...]
if p2cwrite is not None:
self.stdin = os.fdopen(p2cwrite, 'wb', bufsize)
if c2pread is not None:
if universal_newlines:
self.stdout = os.fdopen(c2pread, 'rU', bufsize)
else:
self.stdout = os.fdopen(c2pread, 'rb', bufsize)
if errread is not None:
if universal_newlines:
self.stderr = os.fdopen(errread, 'rU', bufsize)
else:
self.stderr = os.fdopen(errread, 'rb', bufsize)