[英]Suppress tqdm output in Linux "screen" command log
我有一個腳本,它使用 tqdm 為冗長的處理工作流程制作幾個進度條。 由於這個過程很長,我使用 Linux 中的“screen”命令將其作為一個分離的進程運行。 我通過類似於以下的命令將 output 保存到日志文件中:
screen -dm -L sh -c 'python3 myscript.py'
因為 output 還會包含一些報告,對之后的分析很有價值。
然而,問題是屏幕上的 output 日志文件被許多增量重新打印的加載條嚴重污染。 但我確實喜歡能夠在終端中重新附加該進程,以便我可以間歇性地監控它的進度。 所以我不想完全放棄 tqdm。
有沒有辦法在事后抑制日志文件中的 tqdm output ,同時在運行時仍然顯示“實時”?
這可能是由於screen
不是 UTF-8 字符友好。 嘗試使用 -U 參數調用屏幕: screen -U -r <number>
此外,在調用tqdm
時,嘗試包含參數ascii=True
以處理不適合 UTF-8 的屏幕。 如下所示:
for item in tqdm(items, total=len(items), ascii=True):
pass
對於您的情況,在調用tqdm
時使用position
參數設置進度條的 position 也是一個好習慣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.