我试图创建一个新的打印功能,这样它就可以打印彩色文本。"\033[1;31m"使光标打印为红色,而"\033[0;0m"则将其恢复。
颜色的改变工作得很完美,但是内置的打印功能是在每个实例之间打印一个空间。怎样才能避免这个空间?
我知道sep和end,但是使用sep=''会改变整个打印函数的行为。我只想在最左边的字母和空白处之间没有差距。
from builtins import print as b_print
def print(*args, **kwargs):
b_print("\033[1;31m", *args, "\033[0;0m", **kwargs)输出
print("Hello world")
>>><Space><red>Hello world</red>必填项
>>><red>Hello world</red>什么不起作用
b_print("\033[1;31m", '\r', *args, "\033[0;0m", **kwargs)
# as there will be one more tab after \r
b_print("\033[1;31m", *args, "\033[0;0m", **kwargs, sep='')
# as it enforces seperator to be '' between all the args.
from builtins import print as p
b_print("\033[1;31m", '\b', *args,"\033[0;0m", **kwargs)
# as creating a new argument create a new space character发布于 2022-03-05 23:40:09
您必须手动完成更多的工作:接受sep参数,将*args转换为str,并加入sep。
from builtins import print as b_print
def print(*args, sep=' ', **kwargs):
b_print("\033[1;31m" + sep.join(map(str, args)) + "\033[m", **kwargs)
print("Hello", "world", 7, sep='-')演示:
print("Hello", "world", 7, sep='-', end='x')产出如下:
<red>Hello-world-7</red>xhttps://stackoverflow.com/questions/71366663
复制相似问题