Вывод proc.communicate () не форматирует переводы строки в Python django - PullRequest
1 голос
/ 29 августа 2010

У меня есть подпроцесс, использующий связь, чтобы получить выходные данные и сохранить его в моей базе данных:

  p = Popen([str(pre_sync), '-avu', str(src), str(dest)], stdout=PIPE)
  syncoutput = p.communicate()
  check.log = syncoutput

Все работает нормально, но вывод сообщения о связи выглядит следующим образом:

('sending incremental file list\n\nsent 89 bytes  received 13 bytes  204.00 bytes/sec\ntotal size is 25  speedup is 0.25\n', None)

Все в одной строке и со вставленным символом "\ n". Есть ли способ заставить его напечатать каждую строку в новой строке? Заранее спасибо.

1 Ответ

4 голосов
/ 29 августа 2010
syncoutput,sync_error = p.communicate()
print(syncoutput)

p.communicate () возвращает 2-кортеж, состоящий из вывода из stdout и stderrКогда вы печатаете 2-кортеж, вы видите символы \n.Когда вы печатаете строку (нового syncoutput), вы получите отформатированный текст.

...