При использовании subprocess.Popen (), stderr и stdout не имеют вывода

Я использую Python для автоматизации фиксации SVN и хочу записать вывод команды SVN в журнал. файл. Код, который у меня есть, может запустить SVN, но проблема в том, что при успешной фиксации вызов subprocessне возвращает никакого вывода для моего журнала.

Когда я запускаю SVN вручную, для сравнения, я получаю выходные данные, которые показывают ход выполнения команды и показывают, какие файлы фиксируются. Это то, что я хочу в своем файле журнала. Выводит ли SVN эти данные в буфер, а не в stdout или stderr? Как я могу зафиксировать эти данные для своего журнала?

Вот код, который я использую.:

cmd = "svn commit --non-interactive --no-auth-cache -m 'Automatic commit'./"
process = subprocess.Popen(cmd,
                           shell=True,
                           stdout=subprocess.PIPE,
                           stderr=subprocess.PIPE,
                           universal_newlines=True)
result = process.wait()

# Output
out = process.stdout.read()
err = process.stderr.read()

Когда я запускаю этот код и фиксация выполняется успешно, обе переменные outи errпусты.

8
задан Brighid McDonnell 22 October 2012 в 18:40
поделиться