Fill это в питоне

textwrap-Обертывание и заливка текста

Модуль textwrap предоставляет некоторые удобные функции, а также TextWrapper , который выполняет всю работу. Если вы просто переносите или заполняете одну или две текстовые строки, удобные функции должны быть достаточно хороши; в противном случае для эффективности следует использовать экземпляр TextWrapper .

textwrap.wrap(text, width=70, *, initial_indent=», subsequent_indent=», expand_tabs=True, replace_whitespace=True, fix_sentence_endings=False, break_long_words=True, drop_whitespace=True, break_on_hyphens=True, tabsize=8, max_lines=None, placeholder=’ [. ]’)

Обертка один абзац в тексте (строку) , поэтому каждая строка в большинстве ширины символов. Возвращает список строк вывода без заключительных символов новой строки.

Необязательные аргументы ключевого слова соответствуют атрибутам экземпляра TextWrapper , описанным ниже.

См. TextWrapper.wrap() для получения дополнительных сведений о том, как ведет себя wrap() .

textwrap.fill(text, width=70, *, initial_indent=», subsequent_indent=», expand_tabs=True, replace_whitespace=True, fix_sentence_endings=False, break_long_words=True, drop_whitespace=True, break_on_hyphens=True, tabsize=8, max_lines=None, placeholder=’ [. ]’)

Оборачивает один абзац в текст и возвращает одну строку, содержащую обернутый абзац. fill() — это сокращение для

В частности, fill() принимает те же аргументы ключевого слова, что и wrap() .

textwrap.shorten(text, width, *, fix_sentence_endings=False, break_long_words=True, break_on_hyphens=True, placeholder=’ [. ]’)

Свернуть и усечь данный текст, чтобы он соответствовал заданной ширине .

Сначала пробелы в тексте сворачиваются (все пробелы заменяются одиночными пробелами). Если результат подходит по ширине , он возвращается. В противном случае с конца отбрасывается достаточно слов, чтобы оставшиеся слова плюс placeholder поместились в пределах width :

>>> textwrap.shorten("Hello world!", width=12) 'Hello world!' >>> textwrap.shorten("Hello world!", width=11) 'Hello [. ]' >>> textwrap.shorten("Hello world", width=10, placeholder=". ") 'Hello. ' 

Необязательные аргументы ключевого слова соответствуют атрибутам экземпляра TextWrapper , описанным ниже. Обратите внимание, что пробел сворачивается перед передачей текста в TextWrapper fill() , поэтому изменение значения tabsize , expand_tabs , drop_whitespace и replace_whitespace не повлияет.

Удалите все общие начальные пробелы из каждой строки текста .

Это может быть использовано для того,чтобы строки в тройных кавычках выстраивались в линию с левым краем дисплея,но при этом представляли их в исходном коде в виде отступов.

Обратите внимание, что табуляции и пробелы рассматриваются как пробелы, но они не равны: считается, что строки » hello» и «\thello» не имеют общих начальных пробелов.

Строки,содержащие только пробелы,игнорируются на входе и нормируются на один символ новой строки на выходе.

def test(): # заканчивать первую строку символом \, чтобы не было пустой строки! s = '''\ hello world ''' print(repr(s)) # выводит 'hello \ n world \ n' print(repr(dedent(s))) # выводит 'hello \ n world \ n' 

Добавить префикс в начало выделенных строк текста .

Строки разделяются вызовом text.splitlines(True) .

По умолчанию префикс добавляется ко всем строкам, которые не состоят исключительно из пробелов (включая любые окончания строк).

>>> s = 'hello\n\n \nworld' >>> indent(s, ' ') ' hello\n\n \n world'

Необязательный аргумент предиката можно использовать для управления отступом строк. Например, легко добавить префикс даже к пустым строкам и строкам, состоящим только из пробелов:

>>> print(indent(s, '+ ', lambda line: True)) + hello + + + world

wrap() , fill() и shorten() работают путем созданияэкземпляра TextWrapper и вызова для него одного метода. Этот экземпляр не используется повторно, поэтому для приложений, которые обрабатывают множество текстовых строк с помощью wrap() и / или fill() , может быть более эффективным создать собственныйобъект TextWrapper .

Текст предпочтительно переносится через пробелы и сразу после дефисов в словах с переносом; только тогда при необходимости длинные слова будут разбиты, если для TextWrapper.break_long_words не установлено значение false.

Конструктор TextWrapper принимает ряд необязательных аргументов ключевого слова. Каждый аргумент ключевого слова соответствует атрибуту экземпляра, например,

wrapper = TextWrapper(initial_indent="* ")
wrapper = TextWrapper() wrapper.initial_indent = "* " 

Вы можете повторно использовать один и тот же объект TextWrapper много раз, и вы можете изменить любые его параметры, напрямую назначая атрибуты экземпляра между использованиями.

В TextWrapper атрибуты экземпляра (и ключевые аргументы конструктора) следующим образом :

(по умолчанию: 70 ) Максимальная длина переносимых строк. Пока во входном тексте нет отдельных слов , TextWrapper превышает width , TextWrapper гарантирует, что ни одна строка вывода не будет длиннее символов width .

(по умолчанию: True ). Если true, то все символы табуляции в тексте будут expandtabs() пробелами с использованием метода текста expandtabs () .

(по умолчанию: 8 ) Если expand_tabs истинно, то все символы табуляции в тексте будут расширены до нуля или большего количества пробелов, в зависимости от текущего столбца и заданного размера табуляции.

(по умолчанию: True ) Если true, после раскрытия табуляции, но перед переносом, метод wrap() заменит каждый пробельный символ одним пробелом. Заменяются следующие символы пробела: табуляция, новая строка, вертикальная табуляция, перевод страницы и возврат каретки ( ‘\t\n\v\f\r’ ).

Если expand_tabs — false, а replace_whitespace — true, каждый символ табуляции будет заменен одним пробелом, что не то же самое, что расширение табуляции.

Если replace_whitespace имеет значение false, новые строки могут появляться в середине строки и вызывать странный вывод. По этой причине текст следует разбивать на абзацы (используя str.splitlines() или подобное), которые оборачивают отдельно.

(по умолчанию: True ) Если true, пробелы в начале и конце каждой строки (после переноса, но до отступа) удаляются. Однако пробел в начале абзаца не удаляется, если за ним следует не пробел. Если отбрасываемый пробел занимает всю строку, вся строка удаляется.

(по умолчанию: » ) Строка, которая будет добавлена ​​к первой строке обернутого вывода. Считается по длине первой строки. Пустая строка без отступа.

(по умолчанию: » ) Строка, которая будет добавлена ​​ко всем строкам обернутого вывода, кроме первой. Считается по длине каждой строки, кроме первой.

(по умолчанию: False ) Если true, TextWrapper пытается обнаружить окончания предложений и убедиться, что предложения всегда разделены ровно двумя пробелами. Обычно это желательно для текста моноширинным шрифтом. Однако алгоритм определения предложения несовершенен: он предполагает, что окончание предложения состоит из строчной буквы, за которой следует одна из ‘.’ , ‘!’ или ‘?’ , за которым может следовать один из ‘»‘ или «‘» , а затем пробел. Одна из проблем с этим алгоритмом заключается в том, что он не может обнаружить разницу между «Dr.» в

fix_sentence_endings по умолчанию имеет значение false.

Поскольку алгоритм обнаружения предложений использует string.lowercase для определения «строчной буквы» и соглашение об использовании двух пробелов после точки для разделения предложений в одной строке, он специфичен для англоязычных текстов.

(по умолчанию: True ). Если true, то слова длиннее width будут разбиты, чтобы гарантировать, что ни одна строка не будет длиннее width . Если он ложный, длинные слова не будут разбиты, а некоторые строки могут быть длиннее width . (Длинные слова будут помещены в строку сами по себе, чтобы минимизировать величину превышения width .)

(по умолчанию: True ). Если true, перенос будет происходить предпочтительно по пробелам и сразу после дефисов в составных словах, как это принято в английском языке. Если false, только пробелы будут рассматриваться как потенциально хорошие места для разрывов строк, но вам нужно установить break_long_words в false, если вы хотите действительно небезопасные слова. По умолчанию в предыдущих версиях всегда разрешалось разбивать слова через дефис.

(по умолчанию: None ) Если не None , то вывод будет содержать не более max_lines строк, с заполнителем, появляющимся в конце вывода.

(по умолчанию: ‘ [. ]’ ) Строка, которая появится в конце выходного текста, если он был усечен.

TextWrapper также предоставляет несколько общедоступных методов, аналогичных вспомогательным функциям на уровне модуля:

Обертка один абзац в тексте (строку) , поэтому каждая строка в большинстве width символов. Все параметры упаковки берутся из атрибутов экземпляра TextWrapper . Возвращает список строк вывода без заключительных символов новой строки. Если заключенный в оболочку вывод не имеет содержимого, возвращенный список пуст.

Оборачивает один абзац в текст и возвращает одну строку, содержащую обернутый абзац.

Python 3.11

Модули,описанные в этой главе,предоставляют широкий спектр операций манипулирования строками и другие услуги по обработке текста.

Исходный код:Lib/threading.py Этот модуль строит высокоуровневые потоковые интерфейсы поверх нижнего _thread Изменения в версии 3.7:Этот модуль использовал

Источник

Читайте также:  Php hex string to byte
Оцените статью