В подпроцессе. Откройте, к какому файлу относится bufsize? - PullRequest
3 голосов
/ 09 апреля 2011

Мне нужно установить поток stderr в Popen вызове с буферизацией строки. Я обнаружил аргумент bufsize, но он не говорит, к какому из 3 (stdin, stdout, stderr) файлов он был применен.

  • Какой файл имеет аргумент bufsize изменить?
  • Как мне изменить другой режимы буферизации файлов?

1 Ответ

3 голосов
/ 09 апреля 2011

Используйте источник, Люк :-) /usr/lib/python2.7/subprocess.py:

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)

Так что, похоже, он использует bufsize во всех них, никак не быть конкретным.

...