我需要在一個循環(Python 3.x)中打印一行。環視已經,我把這條線在我的代碼:python:打印使用回車符和逗號不工作
print('{0} imported\r'.format(tot),)
但是,它仍然打印時通過循環多行。我也曾嘗試
sys.stdout.write('{0} imported\r'.format(tot))
但這並不打印什麼到控制檯...
任何人都知道這是怎麼回事這個?
我需要在一個循環(Python 3.x)中打印一行。環視已經,我把這條線在我的代碼:python:打印使用回車符和逗號不工作
print('{0} imported\r'.format(tot),)
但是,它仍然打印時通過循環多行。我也曾嘗試
sys.stdout.write('{0} imported\r'.format(tot))
但這並不打印什麼到控制檯...
任何人都知道這是怎麼回事這個?
在第一種情況下,某些系統會將\r
視爲換行符。在第二種情況下,您沒有flush
該行。試試這個:
sys.stdout.write('{0} imported\r'.format(tot))
sys.stdout.flush()
法拉盛線路並非所有的系統所需的任一,如列翁提醒我 - 但它使用\r
這樣,當通常是一個好主意。
@ kevlar1818正如我在評論中提到的那樣,這對我很有用(甚至不會沖洗輸出緩衝區)...... odd – Levon
'sys.stdout.flush()'是我所需要的。謝謝! – kevlar1818
如果你想覆蓋最後一行,你需要添加\ r(字符返回)和end =「」,這樣你就不會去下一行。
values = range(0, 100)
for i in values:
print ("\rComplete: ", i, "%", end="")
print ("\rComplete: 100%")
我更喜歡使用揚的解決方案,但以這樣的方式
values = range(0, 101)
for i in values:
print ("Complete: ", i, "%", end="\r")
print ("\n\r", end="")
你的最後一行是矯枉過正。它應該只是'print()'。 –
'sys.stdout.write函數()'爲我工作..你有'進口sys'。你是否試圖在同一行覆蓋輸出? – Levon
如果您想從python 2.x中獲得與'print text'相同的效果,您需要使用'end'參數,如'print(text,end ='')'中所示。函數參數末尾的逗號不起作用。 – James
不確定「來自2.x」。 'print(text,end ='')'行在'='處給我一個語法錯誤。 – rossmcm