Je traite un fichier texte contenant les coordonnées x, y, z
1 128 1298039
123388 0 2
....
chaque ligne est délimitée en 3 éléments en utilisant
words = line.split()
Après le traitement des données, je dois réécrire les coordonnées dans un autre fichier txt afin que les éléments de chaque colonne soient alignés à droite (ainsi que le fichier d'entrée). Chaque ligne est composée des coordonnées
line_new = words[0] + ' ' + words[1] + ' ' words[2].
Existe-t-il un manipulateur comme std::setw()
etc. en C ++ permettant de définir la largeur et l'alignement?
Il peut être réalisé en utilisant
rjust
:la source
Vous pouvez l'aligner comme ça:
où
>
signifie « aligner à droite » et8
correspond à la largeur d'une valeur spécifique.Et voici une preuve:
Ps.
*line
signifie que laline
liste sera décompressée, donc.format(*line)
fonctionne de manière similaire à.format(line[0], line[1], line[2])
(en supposant qu'illine
s'agit d'une liste avec seulement trois éléments).la source
J'apprécie vraiment une nouvelle interpolation de chaîne littérale dans Python 3.6+:
Référence: PEP 498 - Interpolation de chaîne littérale
la source
Voici une autre façon de formater en utilisant le format 'f-string':
Cela fournira la sortie suivante:
Ce que vous faites ici, c'est que vous dites que la première colonne a une longueur de 15 caractères et qu'elle est justifiée à gauche et que la deuxième colonne (valeurs) a une longueur de 10 caractères et qu'elle est justifiée à droite.
la source
widths = [15, 10]
f"{'Trades:':<width[0]}{cnt:>width[1]}",
J'aimerais réaliser qc comme ci-dessus.f"{'Trades:':<{width[0]}}{cnt:>{width[1]}}"
Tableau simple de la sortie:
production:
% 10.2f: 10 est la longueur minimale et 2 est le nombre de décimales.
la source
Pour le faire en utilisant f-string et avec le contrôle du nombre de chiffres de fin:
la source