我的代码是print("Current progress : something", end = "\r")并不断重复
通常情况下,如果终端的长度超过打印的字数,它看起来很正常,如下所示:

但是,如果单词的长度超过终端的宽度,它将开始形成一条新的线,而不是回到原来的线,而是从新的线开始。

如果宽度太小,我的想法是不要打印多余的代码。
并将特定的宽度和高度设置为用户的终端,我使用了pywin32来设置,但是Linux用户不能使用pywin32,那么在Linux中可以使用哪些模块与pywin32具有相同的功能呢?
编辑:我已经做了如下代码,但它仍然不能解决我的问题
Length = shutil.get_terminal_size()[0]
print (" "*(Length-10), end = "\r") # Clear Last Line
ProgressPrint = f"Current Progress : {somephrase}\t{somephrase}\t{somephrase}"
print ( ProgressPrint[0:Length-10], end = "\r")发布于 2022-05-12 07:23:20
(这只回答了问题的第一部分)
为什么不试试f字串格式说明符呢?
f"{some_name:10.10}"
# This truncate & limit some_name's length to 10
max_len = 10
f"{some_name:{max_len}.{max_len}}" # same but with name instead of literal.演示:
import shutil
import time
width = shutil.get_terminal_size()[0]
print(f"Detected console width: {width}")
def limit_output(stuff_to_print, prefix="", suffix=""):
free_length = width - len(prefix) - len(suffix)
print(f"{prefix}{stuff_to_print:{free_length}.{free_length}}{suffix}", end="\r")
for n in range(10):
time.sleep(0.5)
limit_output("Meow Moo Bark" * (10 - n), f"Iteration {n} / ", "/ Nice suffix")
print() 输出:
Detected console width: 128
Iteration 2 / Meow Moo Bark Meow Moo Bark Meow Moo Bark Meow Moo Bark Meow Moo Bark Meow Moo Bark Meow Moo Bark Meo/ Nice suffixhttps://stackoverflow.com/questions/72210497
复制相似问题