Python: la sortie au Format chaîne de caractères, alignement à droite
Je suis le traitement d'un fichier texte contenant les coordonnées x, y, z
1 128 1298039
123388 0 2
....
chaque ligne est séparée en 3 éléments à l'aide de
words = line.split()
Après le traitement de données dont j'ai besoin pour écrire les coordonnées de retour dans un autre fichier txt, de sorte que les éléments de chaque colonne sont 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].
Est-il un manipulateur comme std::setw()
etc. en C++ permettant de définir la largeur et l'alignement?
- Quelle est la relation entre les variables
words
etword
? - Marque: Faute de frappe, a été fixé...
Vous devez vous connecter pour publier un commentaire.
Essayer cette approche à l'aide de la plus récente
str.format
syntaxe:Et voici comment le faire en utilisant l'ancienne
%
syntaxe (utile pour les anciennes versions de Python qui ne supportent passtr.format
):u'...'.format
)Vous pouvez l'aligner comme ça:
où
>
signifie "aligner à droite" et8
est le largeur de valeur spécifique.Et en voici la preuve:
Ps.
*line
signifie laline
liste sera déballé, donc.format(*line)
fonctionne de façon similaire à.format(line[0], line[1], line[2])
(en supposant queline
une liste avec seulement trois éléments).Elle peut être obtenue en utilisant
rjust
:J'ai vraiment profiter d'une nouvelle chaîne littérale de l'interpolation en Python 3.6+:
Référence: PEP 498 -- Chaîne Littérale de l'Interpolation
Simple totalisation de la sortie:
de sortie:
%10.2 f: 10 est la longueur minimale et 2 est le nombre de décimales.
Voici une autre façon de comment vous pouvez mettre en forme à l'aide de " f-chaîne de format:
Cela donnera le résultat suivant:
Ce que vous faites ici, c'est vous dire que la première colonne est de 15 caractères et c'est justifié à gauche et de la deuxième colonne (valeurs) est de 10 caractères de long et il est justifié à droite.