回答
我认为你可以使用sys.stdout
此:
import sys
def stdout(message):
sys.stdout.write(message)
sys.stdout.write('\b' * len(message)) # \b: non-deleting backspace
def demo():
stdout('Right'.rjust(50))
stdout('Left')
sys.stdout.flush()
print()
demo()
您可以用精确的控制台宽度,你可以从https://stackoverflow.com/a/943921/711085
得到更换50
难道你不能使用'print message,'(注意尾随逗号)吗? – 2012-03-09 20:06:15
漂亮。我评论过它,并对它进行了编辑,使其可以在交互式Python提示符以及python2和python3中运行。确切准确地将'50'替换为您从http://stackoverflow.com/a/943921/711085获得的值。 – ninjagecko 2012-03-09 20:06:20
@andrewcooke:'\ b'“后退:光标移动到行的开头,所以实际上我在打印出'Left'时覆盖了行,可以使用'print',不过@FJ。 – Blender 2012-03-09 20:21:45
这是一个非常简单的方法:
>>> left, right = 'Left', 'Right'
>>> print '|{}{}{}|'.format(left, ' '*(50-len(left+right)), right)
|Left Right|
作为功能:
def lr_justify(left, right, width):
return '{}{}{}'.format(left, ' '*(width-len(left+right)), right)
>>> lr_justify('Left', '', 50)
'Left '
>>> lr_justify('', 'Right', 50)
' Right'
>>> lr_justify('Left', 'Right', 50)
'Left Right'
>>> lr_justify('', '', 50)
' '
您是否将ArgParse用于命令行解析器? – 2012-03-09 19:58:08
对于正确的理由,您首先需要知道您的总输出空间有多宽。你做? – delnan 2012-03-09 19:58:36