Модуль textwrap
В стандартной библиотеке Python есть модуль textwrap, содержащий простые, но в то же время полезные инструменты для работы с текстом. Приведу здесь их краткое описание:
wrap(text, width=70, **kwargs)
Разбивает строку text так, чтобы в полученном в результате списке строк длина каждой из них не превышала width символов.
fill(text, width=70, **kwargs)
Делает то же самое, что и wrap, только результат возвращается в виде строки, а не списка строк.
shorten(text, width, **kwargs)
Сокращает строку text до width символов, попутно удаляя лишние пробельные символы (пробел, табуляция, перевод строки и т.п.).
>>> shorten('Beautiful is better than ugly.', 20)
'Beautiful is [...]'
indent(text, prefix, predicate=None)
Добавляет prefix слева в каждую строку параграфа.
>>> print(indent(json.dumps({'qwe': 1}, indent=4), '.'*8))
........{
........ "qwe": 1
........}
dedent(text)
Удаляет пробельные символы в начале строк параграфа.
Также в модуле есть класс TextWrapper, объединяющий в себе перечисленные выше возможности. Его методы wrap и fill обрабатывают текст согласно настроек экземпляра класса и возвращают результат обработки в виде списка или строки соответственно.
Совет: используйте инструментарий из модуля textwrap для форматирования текстовых строк. В консольных приложениях, в лог-файлах и т.п. это повысит читаемость вывода приложения. Также это повысит читаемость кода, т.к. он не будет перегружен конструкциями, форматирующими текст.
Ссылки:
- Модуль textwrap.
#python
В стандартной библиотеке Python есть модуль textwrap, содержащий простые, но в то же время полезные инструменты для работы с текстом. Приведу здесь их краткое описание:
wrap(text, width=70, **kwargs)
Разбивает строку text так, чтобы в полученном в результате списке строк длина каждой из них не превышала width символов.
fill(text, width=70, **kwargs)
Делает то же самое, что и wrap, только результат возвращается в виде строки, а не списка строк.
shorten(text, width, **kwargs)
Сокращает строку text до width символов, попутно удаляя лишние пробельные символы (пробел, табуляция, перевод строки и т.п.).
>>> shorten('Beautiful is better than ugly.', 20)
'Beautiful is [...]'
indent(text, prefix, predicate=None)
Добавляет prefix слева в каждую строку параграфа.
>>> print(indent(json.dumps({'qwe': 1}, indent=4), '.'*8))
........{
........ "qwe": 1
........}
dedent(text)
Удаляет пробельные символы в начале строк параграфа.
Также в модуле есть класс TextWrapper, объединяющий в себе перечисленные выше возможности. Его методы wrap и fill обрабатывают текст согласно настроек экземпляра класса и возвращают результат обработки в виде списка или строки соответственно.
Совет: используйте инструментарий из модуля textwrap для форматирования текстовых строк. В консольных приложениях, в лог-файлах и т.п. это повысит читаемость вывода приложения. Также это повысит читаемость кода, т.к. он не будет перегружен конструкциями, форматирующими текст.
Ссылки:
- Модуль textwrap.
#python