import textwrap textwrap.indent(text, prefix, predicate=None)
text
- абзац/строкаprefix
- строкаpredicate=None
- bool, может принимать функцию, которая должна вернуть True
или False
.Улучшение в Python 3.13: при больших входных данных (аргумент
text
) функцияtextwrap.indent()
теперь работает на 30% быстрее, чем раньше.
Функция indent()
модуля textwrap
добавляет префикс к началу выделенных строк в абзаце. Строки делятся в результате вызова метода строки text.splitlines(True)
.
По умолчанию префикс добавляется ко всем строкам, которые не состоят исключительно из пробелов (включая любые окончания строк). Например:
>>> import textwrap as tw >>> s = 'hello\n\n \nworld' >>> tw.indent(s, ' ') # ' hello\n\n \n world'
Необязательный аргумент predicate
может использоваться для управления тем, какие строки имеют отступ. Например, легко добавить префикс даже к пустым строкам и строкам только с пробелами:
>>> import textwrap as tw >>> s = 'hello\n\n \nworld' >>> print(tw.indent(s, '+ ', lambda line: True)) # + hello # + # + # + world
text = "Необязательный аргумент `predicate` может использоваться \ для управления тем, какие строки имеют отступ. Например, легко \ добавить префикс даже к пустым строкам и строкам только с пробелами." # пример пользовательской функции def prefix(line): return True if 'Например' in line else False import textwrap as tw filled = tw.fill(text, width=50) text = tw.indent(filled, '* ', predicate=prefix) print(text) # Необязательный аргумент `predicate` может # использоваться для управления тем, какие строки # * имеют отступ. Например, легко добавить префикс # даже к пустым строкам и строкам только с # пробелами.