我有一些Django管理命令調用其他類中的方法來執行各種任務,如從外部API獲取數據。在Django管理命令期間顯示單行進度並在測試期間禁用它
在這些方法中,我輸出顯示的進步,像一條線:
print('Fetched %d of %d' % (n, total) + ' '*30, end='\r')
這工作正常,但是當我跑我的測試這種被打印出來,螺絲了.....E....F...
顯示。我可以在我所有的測試中修補print
,但看起來很笨重。 (a)我應該以其他方式輸出進度線,和/或(b)在運行測試時是否有更好的方法來抑制輸出?
你可以有自己的打印包裝,它將檢查sys.stdout是否是一個終端,並根據它的行爲有所不同,例如, \ r爲終端\ n爲文件或管道 – Jerzyk