Ich verarbeite eine Textdatei mit den Koordinaten x, y, z
1 128 1298039
123388 0 2
....
Jede Zeile wird mit in 3 Elemente unterteilt
words = line.split()
Nach der Verarbeitung der Daten muss ich die Koordinaten in eine andere txt-Datei zurückschreiben, damit die Elemente in jeder Spalte rechts ausgerichtet sind (sowie die Eingabedatei). Jede Linie besteht aus den Koordinaten
line_new = words[0] + ' ' + words[1] + ' ' words[2].
Gibt es std::setw()
in C ++ einen Manipulator wie usw., mit dem die Breite und Ausrichtung eingestellt werden kann?
python
alignment
string-formatting
justik
quelle
quelle
Dies kann erreicht werden durch
rjust
:quelle
Sie können es so ausrichten:
Dabei
>
bedeutet " nach rechts ausrichten " und8
ist die Breite für einen bestimmten Wert.Und hier ist ein Beweis:
Ps.
*line
bedeutet, dass dieline
Liste entpackt wird und daher.format(*line)
ähnlich funktioniert.format(line[0], line[1], line[2])
(vorausgesetzt, esline
handelt sich um eine Liste mit nur drei Elementen).quelle
Ich mag eine neue wörtliche String-Interpolation in Python 3.6+ sehr:
Referenz: PEP 498 - Literal String Interpolation
quelle
Hier ist eine andere Möglichkeit, wie Sie mit dem 'f-string'-Format formatieren können:
Dies liefert die folgende Ausgabe:
Was Sie hier tun, ist, dass Sie sagen, dass die erste Spalte 15 Zeichen lang und linksbündig ist und die zweite Spalte (Werte) 10 Zeichen lang und rechtsbündig ist.
quelle
widths = [15, 10]
f"{'Trades:':<width[0]}{cnt:>width[1]}",
Ich möchte etwas wie oben erreichen.f"{'Trades:':<{width[0]}}{cnt:>{width[1]}}"
Einfache Tabellierung der Ausgabe:
Ausgabe:
% 10.2f: 10 ist die Mindestlänge und 2 ist die Anzahl der Dezimalstellen.
quelle
So verwenden Sie die F-Zeichenfolge und steuern die Anzahl der nachgestellten Ziffern:
quelle