2010-08-28 99 views
1

我有一個子進程使用通信以獲得輸出ANS將其保存到我的數據庫:輸出proc.communicate的()不格式化換行符Django的蟒蛇

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」。有沒有辦法讓它在新行中打印每行?提前致謝。

回答

4
syncoutput,sync_error = p.communicate() 
print(syncoutput) 

p.communicate()返回一個2元組,由stdout和stderr的輸出組成。當您打印2元組時,您會看到\n個字符。當您打印字符串(新的syncoutput)時,您將獲得格式化文本。

+0

絕對正確!謝謝! – dura 2010-08-28 22:46:09

+0

@dura,一定要**接受**這個答案(檢查A左側的複選標記形狀的圖標) - 「謝謝你很便宜,但接受問題」是SO基本禮節的一部分! - ) – 2010-08-29 00:58:59