Python string-Formatierung - Grenzwert Länge der Zeichenfolge, aber trim-string-Anfang
Ich bin mit der Python-standard-logging-Modul mit benutzerdefinierten Formatierer, wo ich Begrenze die Länge von einigen Feldern. Es verwendet standard - %
Python-operator.
Kann ich anwenden Grenze für Prozent-formatierte string (dies begrenzt die Länge auf 10 Zeichen):
>>> "%.10s" % "Lorem Ipsum"
'Lorem Ipsu'
Ist es möglich, schneiden Sie es von Anfang an, also der Ausgang ist 'orem Ipsum'
(ohne Manipulation rechten Seite argument)?
- Ich glaube nicht, dass es möglich ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es möglich, um es zu trimmen, von Anfang an mit % formatieren?
Python - % - Formatierung stammt von C ist printf.
Beachten Sie, dass die
.
zeigt die Genauigkeit für float. Es funktioniert auf ein string ist eine bloße Nebenwirkung, und leider es gibt keine Bestimmung in der string-Formatierung-Spezifikation, um Platz für Strippen einen string von Links eine Feste max Breite.Deshalb, wenn Sie müssen-strip-string auf eine Feste Breite von dem Ende, dem empfehle ich einen slice von einem negativen index. Dieser Vorgang ist robust, und wird nicht fehlschlagen, wenn die Zeichenfolge weniger als 10 chars.
str.format
auch keine Hilfestr.format
ist keine Hilfe hier, ist die Breite ein Mindest-Breite:(Der Stern, "
*
", ist die Füll-Zeichen.)%
und.format()
inhärent entfernt von der rechten Seite. Also, wenn Sie die Verwendung von string abschneiden, umkehren, oder eine andere alternative vor dem Absenden zu formatieren, scheint unmöglich..format
Dokumentation ist ziemlich gut dokumentiert und lesbar. Es wäre einfacher gewesen, zu zeigen, dass Dokumentation....format
Dokumentation ist hier, wenn Sie es mögen. Ich persönlich finde es eher dicht und frustrierend. OTOH, es ist eine Referenz, die mehr als ein how-to-use, und die zugrunde liegende Funktionalität und die Optionen sind vielfältig und detailliert.Dies kann leicht getan werden, durch hacken, so dass Sie benötigen keine format-string-manipulation zu tun Ihren JOB
Ich hatte die gleiche Frage und kam mit dieser Lösung, die mit LogRecordFactory.
Hier bin ich mit dem abschneiden der Namen 10 Zeichen und speichert diese in dem Attribut sname, die verwendet werden können, wie jeder andere Wert.
Ist es möglich, speichern Sie die abgeschnittenen Namen in der Aufzeichnung.Namen, aber ich wollte immer die original Namen um sich zu.