恼人的空间不会消失。我该怎么办?

时间:2013-08-01 21:24:30

标签: python string text colorama

我目前正在使用Python制作游戏。

我想要代码阅读:

[00:00:00]   Name|Hello!

这是我的代码:

print(Fore.YELLOW + Style.BRIGHT + '['),
print strftime("%H:%M:%S"),
print ']',
print(Style.BRIGHT + Fore.RED + ' Name'),
print(Fore.BLACK + '|'),
print(Fore.WHITE + Style.DIM + 'Hello!')
time.sleep(5)

相反 - 出于某种原因 - 它变成了这样:

[ 00:00:00 ]    Name | Hello!

我不知道这段代码有什么问题,或者如何修复它。

我非常感谢能得到的所有帮助!谢谢。

2 个答案:

答案 0 :(得分:5)

使用单个print语句和逗号进行打印始终会打印尾随空格。

使用一个打印语句连接所有内容,或使用sys.stdout.write()直接写入终端而不需要额外的空格:

print Fore.YELLOW + Style.BRIGHT + '[' + strftime("%H:%M:%S") + ']',

sys.stdout.write(Fore.YELLOW + Style.BRIGHT + '[')
sys.stdout.write(strftime("%H:%M:%S"))
sys.stdout.write(']')

或使用字符串格式:

print '{Fore.YELLOW}{Style.BRIGHT}[{time}] {Style.BRIGHT}{Fore.RED} Name {Fore.BLACK}| {Fore.WHITE}{Style.DIM}Hello!'.format(
    Style=Style, Fore=Fore, time=strftime("%H:%M:%S"))

答案 1 :(得分:1)

另一个选择是使用end=""选项print()。这不会打印换行符,也不会在末尾添加额外的空格。

print(Style.BRIGHT + Fore.RED + ' Name', end="")
print(Fore.BLACK + '|', end="")
print(Fore.WHITE + Style.DIM + 'Hello!')

需要注意的是end选项仅适用于Python 3.如果from __future__ import print_function

,它也可以在Python 2.6-ish中使用