A formatação de strings %é uma ótima maneira de lidar com isso. Aqui estão alguns exemplos.
O código de formatação é '%s'convertido '12345'em uma string, mas já é uma string.
>>> '%s' % '12345'
'12345'
'%.3s' especifica o uso apenas dos três primeiros caracteres.
>>> '%.3s' % '12345'
'123'
'%.7s'diz para usar os primeiros sete caracteres, mas existem apenas cinco. Sem problemas.
>>> '%.7s' % '12345'
'12345'
'%7s' usa até sete caracteres, preenchendo os caracteres ausentes com espaços à esquerda.
>>> '%7s' % '12345'
' 12345'
'%-7s' é a mesma coisa, exceto preencher os caracteres ausentes à direita.
>>> '%-7s' % '12345'
'12345 '
'%5.3' diz para usar os três primeiros caracteres, mas preencha com espaços à esquerda para um total de cinco caracteres.
>>> '%5.3s' % '12345'
' 123'
Mesma coisa, exceto preencher à direita.
>>> '%-5.3s' % '12345'
'123 '
Também pode lidar com vários argumentos!
>>> 'do u no %-4.3sda%3.2s wae' % ('12345', 6789)
'do u no 123 da 67 wae'
Se você precisar de ainda mais flexibilidade, também str.format()está disponível. Aqui está a documentação para ambos.