简体   繁体   中英

Pad or truncate string based on fixed length

Currently have code that looks something like;

print '{: <5}'.format('test')

This will pad my string with ' ' if it is less than 5 characters. If the string is more than 5 characters, I'd need the string to be truncated.

Without explicitly checking the length of my string before formatting it, is there a better way to pad if less than fixed length or truncate if greater than fixed length?

You can use 5.5 to combine truncating and padding so that the output will always be of length of five:

'{:5.5}'.format('testsdf')
# 'tests'

'{:5.5}'.format('test')
# 'test '

You could use str.ljust and slice the string:

>>> 'testsdf'.ljust(5)[:5]
'tests'
>>> 'test'.ljust(5)[:5]
'test '

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM