覆蓋FTP 下載狀態的先前輸出
在開發FTP 下載器時,可能會遇到顯示下載進度的需求在定期更新的一行中。以下程式碼片段說明了初始方法:
ftp.retrbinary("RETR " + file_name, process) def process(data): print(os.path.getsize(file_name)/1024, 'KB / ', size, 'KB downloaded!') file.write(data)
但是,此方法會導致多行輸出不反映進度。為了解決這個問題,我們可以利用 print() 函數中的 end 參數。
print(os.path.getsize(file_name)/1024+'KB / '+size+' KB downloaded!', end='\r')
在 Python 3.x 中,end 參數允許我們指定一個字元或字串附加到列印的行。透過將其設為“r”(回車符),我們可以將遊標返回到當前行的開頭,而不添加換行符。這有效地覆蓋了先前的輸出,使我們能夠在單一更新行中顯示進度。
對於 Python 2.6 ,我們可以利用 __future__ 模組來啟用 Python 3 樣式列印:
from __future__ import print_function # Code remains the same as in Python 3.x
以上是如何覆蓋先前的輸出以實現即時 FTP 下載進度顯示?的詳細內容。更多資訊請關注PHP中文網其他相關文章!