
SIE in Python das textwrap-Modul der Standardbibliothek, um eine Zeichenfolge bei einer bestimmten Breite (= Anzahl von Zeichen) zu verwenden, umzubrechen oder abzuschneiden.
Dieser Artikel hat folgenden Inhalt.
- Wickeln Sie eine Zeichenfolge:
wrap(), fill()
- Eine Zeichenfolge abschneiden:
shorten()
- TextWrapper-Objekt
Wenn Sie lange Zeichenfolgen in mehreren Zeilen im Code statt in der Ausgabe schreiben möchten, lesen Sie den following Artikel.
Das Print-Modul ist nützlich, um Listen- und Wörterbücher zu formatieren und auszugeben. Siehe folgenden Artikel.
Wickeln Sie eine Zeichenfolge:wrap(), fill()
Mit der wrap()-Funktion des textwrap-Moduls can SIE Eine Liste erhalten, die durch Wortumbrüche unterteilt IST, um eine bestimmte Anzahl von Zeichen aufzunehmen.
Geben Sie die Anzahl der Zeichen für die Breite des zweiten Arguments an. Der Standardwert ist width=70.
import textwrap
s = "Python can be easy to pick up whether you're a first time programmer or you're experienced with other languages"
s_wrap_list = textwrap.wrap(s, 40)
print(s_wrap_list)
# ['Python can be easy to pick up whether', "you're a first time programmer or you're", 'experienced with other languages']
Verwenden Sie ’n‘.join(list), um die Zeichenfolge mit dem Zeilenvorschubcode n zu erhalten.
print('n'.join(s_wrap_list))
# Python can be easy to pick up whether
# you're a first time programmer or you're
# experienced with other languages
Die Funktion fill() gibt einen String mit Zeilenumbrüchen zurück, keine Liste. Es ist dasselbe wie ’n‘.join(list) nach wrap() wie im Beispiel Beispiel.
Dies ist praktisch, wenn Sie keine Liste benötigen und eine Zeichenfolge mit fester Breite ausgeben möchten.
print(textwrap.fill(s, 40))
# Python can be easy to pick up whether
# you're a first time programmer or you're
# experienced with other languages
If das Argument max_line angegeben IST, Werden sterben following Zeilen weggelassen.
print(textwrap.wrap(s, 40, max_lines=2))
# ['Python can be easy to pick up whether', "you're a first time programmer or [...]"]
print(textwrap.fill(s, 40, max_lines=2))
# Python can be easy to pick up whether
# you're a first time programmer or [...]
Wenn weggelassen, wird standardmäßig ‚ […]‘ am Ende ausgegeben. Es kann durch eine beliebige Zeichenfolge mit dem Platzhalterargument ersetzt werden.
print(textwrap.fill(s, 40, max_lines=2, placeholder=' ~'))
# Python can be easy to pick up whether
# you're a first time programmer or ~
Das Argument initial_indent can used Werden, um Eine Zeichenfolge anzugeben, sterben am Anfang der Ersten Zeile Hinzugefügt Werden Soll. Es wird verwendet, wenn Sie den Anfang eines Absatzes einrücken möchten.
print(textwrap.fill(s, 40, max_lines=2, placeholder=' ~', initial_indent=' '))
# Python can be easy to pick up whether
# you're a first time programmer or ~
Weitere detaillierte Einstellungen finden Sie in der offiziellen Dokumentation.
Eine Zeichenfolge abschneiden:shorten()
Wenn Sie einen String verkürzen möchten, damit Sie ihn abschneiden, verwenden Sie die Funktion shorten() des Textwrap-Moduls.
Mit dem Platzhalter kann es wortweise gekürzt werden, um in einer bestimmten Anzahl von Zeichen zu pass. Der Platzhalter ist standardmäßig ‚ […]‘ und kann mit dem Placeholder-Argument gesetzt werden.
s = 'Python is powerful'
print(textwrap.shorten(s, 12))
# Python [...]
print(textwrap.shorten(s, 12, placeholder=' ~'))
# Python is ~
TextWrapper-Objekt
Wenn Sie wrap() oder fill() viele Male mit gleichzeitigen Einstellungen ausführen, ist es effizienter, ein TextWrapper-Objekt zu erstellen.
wrapper = textwrap.TextWrapper(width=30, max_lines=3, placeholder=' ~', initial_indent=' ')
s = "Python can be easy to pick up whether you're a first time programmer or you're experienced with other languages"
print(wrapper.wrap(s))
# [' Python can be easy to pick', "up whether you're a first time", "programmer or you're ~"]
print(wrapper.fill(s))
# Python can be easy to pick
# up whether you're a first time
# programmer or you're ~