簡體   English   中英

在 Linux “屏幕”命令日志中抑制 tqdm output

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM