首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果终端宽度小于单词的长度,Python将防止在新行中打印()。

如果终端宽度小于单词的长度,Python将防止在新行中打印()。
EN

Stack Overflow用户
提问于 2022-05-12 05:27:53
回答 1查看 120关注 0票数 0

我的代码是print("Current progress : something", end = "\r")并不断重复

通常情况下,如果终端的长度超过打印的字数,它看起来很正常,如下所示:

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

如果宽度太小,我的想法是不要打印多余的代码。

并将特定的宽度和高度设置为用户的终端,我使用了pywin32来设置,但是Linux用户不能使用pywin32,那么在Linux中可以使用哪些模块与pywin32具有相同的功能呢?

编辑:我已经做了如下代码,但它仍然不能解决我的问题

代码语言:javascript
复制
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")
EN

回答 1

Stack Overflow用户

发布于 2022-05-12 07:23:20

(这只回答了问题的第一部分)

为什么不试试f字串格式说明符呢?

代码语言:javascript
复制
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.

演示:

代码语言:javascript
复制
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()                                                                                                                                                                                                                                                                                                                                                                                                   

输出:

代码语言:javascript
复制
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 suffix
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72210497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档