How can I fill out a Python string with spaces?
You can do this with str.ljust(width[, fillchar])
:
Return the string left justified in a string of length width. Padding is done using the specified fillchar (default is a space). The original string is returned if width is less than
len(s)
.
>>> 'hi'.ljust(10)'hi '
For a flexible method that works even when formatting complicated string, you probably should use the string-formatting mini-language, using either the str.format()
method
>>> '{0: <16} StackOverflow!'.format('Hi') # Python >=2.6'Hi StackOverflow!'
of f-strings
>>> f'{"Hi": <16} StackOverflow!' # Python >= 3.6'Hi StackOverflow!'
The new(ish) string format method lets you do some fun stuff with nested keyword arguments. The simplest case:
>>> '{message: <16}'.format(message='Hi')'Hi '
If you want to pass in 16
as a variable:
>>> '{message: <{width}}'.format(message='Hi', width=16)'Hi '
If you want to pass in variables for the whole kit and kaboodle:
'{message:{fill}{align}{width}}'.format( message='Hi', fill=' ', align='<', width=16,)
Which results in (you guessed it):
'Hi '
And for all these, you can use python 3.6+ f-strings:
message = 'Hi'fill = ' 'align = '<'width = 16f'{message:{fill}{align}{width}}'
And of course the result:
'Hi '