Mélange de formatage de chaine et de justification de caractères
Code:
1 2 3 4 5 6 7 8
| t = ('Av2476','21 mai 1927','Linbergh atterrit à Paris','Atlantique')
u = ('Av4839','11 septembre 2001','Attentat sur WTC','New York')
print '%s - %s - %s - %s' % t
print '%s - %s - %s - %s' % u
# affiche:
Av2476 - 21 mai 1927 - Linbergh atterrit à Paris - Atlantique
Av4839 - 11 septembre 2001 - Attentat sur WTC - New York |
Mais je voudrais afficher la date dans un cartouche de longueur toujours égale à 17, en justifiant les caractères à gauche, tout en conservant le formatage de chaine.
17 correspond à la plus longue date possible, quand il y a 'septembre'.
ch.ljust(17) justifie à gauche ch dans un cartouche de longueur 17
Comme t[0] fait toujours 6 caractères, cela revient à justifier t[0]+' - '+t[1] à gauche dans un cartouche de longueur 6+3+17 = 26.
Mais je ne sais pas comment introduire ljust(26) dans l'expression plus haut sans avoir à découper le tuple. Je voudrais éviter la solution suivante:
Code:
1 2 3 4 5 6 7 8
| t = ('Av2476','21 mai 1927','Linbergh atterrit à Paris','Atlantique')
u = ('Av4839','11 septembre 2001','Attentat sur WTC','New York')
print ('%s - %s' % t[0:2]).ljust(26) + ' - %s - %s' % t[2:4]
print ('%s - %s' % u[0:2]).ljust(26) + ' - %s - %s' % u[2:4]
# qui affiche bien:
Av2476 - 21 mai 1927 - Linbergh atterrit à Paris - Atlantique
Av4839 - 11 septembre 2001 - Attentat sur WTC - New York |
Quelqu'un a-t-il une idée ?