unity 检测文本有没有自动换行_python3从零学习-5.1.5、文本自动换行与填充模块textwrap...
生活随笔
收集整理的這篇文章主要介紹了
unity 检测文本有没有自动换行_python3从零学习-5.1.5、文本自动换行与填充模块textwrap...
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
TextWrapper 模塊提供了一些快捷函數(shù),以及可以完成所有工作的類 TextWrapper
如果你只是要對(duì)一兩個(gè)文本字符串進(jìn)行自動(dòng)換行或填充,快捷函數(shù)應(yīng)該就夠用了;否則的話,你應(yīng)該使用 TextWrapper 的實(shí)例來(lái)提高效率。
textwrap.wrap(text, width=70, **kwargs)對(duì) text (字符串) 中的單獨(dú)段落自動(dòng)換行以使每行長(zhǎng)度最多為 width 個(gè)字符。 返回由輸出行組成的列表,行尾不帶換行符。
可選的關(guān)鍵字參數(shù)對(duì)應(yīng)于 TextWrapper 的實(shí)例屬性,具體文檔見下。 width 默認(rèn)為 70。
請(qǐng)參閱 TextWrapper.wrap() 方法了解有關(guān) wrap() 行為的詳細(xì)信息。def wrap(text, width=70, **kwargs): """Wrap a single paragraph of text, returning a list of wrapped lines. Reformat the single paragraph in 'text' so it fits in lines of no more than 'width' columns, and return a list of wrapped lines. By default, tabs in 'text' are expanded with string.expandtabs(), and all other whitespace characters (including newline) are converted to space. See TextWrapper class for available keyword args to customize wrapping behaviour. """ w = TextWrapper(width=width, **kwargs) return w.wrap(text)
textwrap.fill(text, width=70, **kwargs)def fill(text, width=70, **kwargs): """Fill a single paragraph of text, returning a new string. Reformat the single paragraph in 'text' to fit in lines of no more than 'width' columns, and return a new string containing the entire wrapped paragraph. As with wrap(), tabs are expanded and other whitespace characters converted to space. See TextWrapper class for available keyword args to customize wrapping behaviour. “"" w = TextWrapper(width=width, **kwargs) return w.fill(text)
對(duì) text 中的單獨(dú)段落自動(dòng)換行,并返回一個(gè)包含被自動(dòng)換行段落的單獨(dú)字符串。 fill() 是以下語(yǔ)句的快捷方式
"n".join(wrap(text, ...)) 特別要說(shuō)明的是,fill() 接受與 wrap() 完全相同的關(guān)鍵字參數(shù)。textwrap.shorten(text, width, **kwargs)折疊并截短給定的 text 以符合給定的 width。
def shorten(text, width, **kwargs): """Collapse and truncate the given text to fit in the given width. The text first has its whitespace collapsed. If it then fits in the *width*, it is returned as is. Otherwise, as many words as possible are joined and then the placeholder is appended:: >>> textwrap.shorten("Hello world!", width=12) 'Hello world!' >>> textwrap.shorten("Hello world!", width=11) 'Hello [...]' """ w = TextWrapper(width=width, max_lines=1, **kwargs) return w.fill(' '.join(text.strip().split()))
首先將折疊 text 中的空格(所有連續(xù)空格替換為單個(gè)空格)。 如果結(jié)果能適合 width 則將其返回。 否則將丟棄足夠數(shù)量的末尾單詞以使得剩余單詞加 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...'可選的關(guān)鍵字參數(shù)對(duì)應(yīng)于 TextWrapper 的實(shí)際屬性,具體見下文。 請(qǐng)注意文本在被傳入 TextWrapper 的 fill() 函數(shù)之前會(huì)被折疊,因此改變 tabsize, exand_tabs, drop_whitespace 和 replace_whitespace 的值將沒(méi)有任何效果。
3.4 新版功能.textwrap.dedent(text)移除 text 中每一行的任何相同前綴空白符。
這可以用來(lái)清除三重引號(hào)字符串行左側(cè)空格,而仍然在源碼中顯示為縮進(jìn)格式。
請(qǐng)注意制表符和空格符都被視為是空白符,但它們并不相等:以下兩行 " hello" 和 "thello" 不會(huì)被視為具有相同的前綴空白符。
例如
def test(): # end first line with to avoid the empty line! s = ''' helloworld'''print(repr(s)) # prints ' hellon worldn ' print(repr(dedent(s))) # prints 'hellon worldn' textwrap.indent(text, prefix, predicate=None)將 prefix 添加到 text 中選定行的開頭。
通過(guò)調(diào)用 text.splitlines(True) 來(lái)對(duì)行進(jìn)行拆分。
默認(rèn)情況下,prefix 會(huì)被添加到所有不是只由空白符(包括任何行結(jié)束符)組成的行。
例如
>>>
>>> s = 'hellonn nworld'
>>> indent(s, ' ')
' hellonn n world'可選的 predicate 參數(shù)可用來(lái)控制哪些行要縮進(jìn)。 例如,可以很容易地為空行或只有空白符的行添加 prefix:
>>>
>>> print(indent(s, '+ ', lambda line: True))
+ hello
+
+
+ world3.3 新版功能.wrap(), fill() 和 shorten() 的作用方式為創(chuàng)建一個(gè) TextWrapper 實(shí)例并在其上調(diào)用單個(gè)方法。 該實(shí)例不會(huì)被重用,因此對(duì)于要使用 wrap() 和/或 fill() 來(lái)處理許多文本字符串的應(yīng)用來(lái)說(shuō),創(chuàng)建你自己的 TextWrapper 對(duì)象可能會(huì)更有效率。
文本最好在空白符位置自動(dòng)換行,包括帶連字符單詞的連字符之后;長(zhǎng)單詞僅在必要時(shí)會(huì)被拆分,除非 TextWrapper.break_long_words 被設(shè)為假值。class textwrap.TextWrapper(**kwargs)TextWrapper 構(gòu)造器接受多個(gè)可選的關(guān)鍵字參數(shù)。 每個(gè)關(guān)鍵字參數(shù)對(duì)應(yīng)一個(gè)實(shí)例屬性,比如說(shuō)
wrapper = TextWrapper(initial_indent="* ") 就相當(dāng)于
wrapper = TextWrapper()
wrapper.initial_indent = "* " 你可以多次重用相同的 TextWrapper 對(duì)象,并且你也可以在使用期間通過(guò)直接向?qū)嵗龑傩再x值來(lái)修改它的任何選項(xiàng)。
TextWrapper 的實(shí)例屬性(以及構(gòu)造器的關(guān)鍵字參數(shù))如下所示:width(默認(rèn): 70) 自動(dòng)換行的最大行長(zhǎng)度。 只要輸入文本中沒(méi)有長(zhǎng)于 width 的單個(gè)單詞,TextWrapper 就能保證沒(méi)有長(zhǎng)于 width 個(gè)字符的輸出行。expand_tabs(默認(rèn): True) 如果為真值,則 text 中所有的制表符將使用 text 的 expandtabs() 方法擴(kuò)展為空格符。tabsize(默認(rèn): 8) 如果 expand_tabs 為真值,則 text 中所有的制表符將擴(kuò)展為零個(gè)或多個(gè)空格,具體取決于當(dāng)前列位置和給定的制表寬度。
3.3 新版功能.replace_whitespace(default: True) 如果為真值,在制表符擴(kuò)展之后、自動(dòng)換行之前,wrap() 方法將把每個(gè)空白字符都替換為單個(gè)空格。 會(huì)被替換的空白字符如下:制表,換行,垂直制表,進(jìn)紙和回車 ('tnvfr')。
注解
如果 expand_tabs 為假值且 replace_whitespace 為真值,每個(gè)制表符將被替換為單個(gè)空格,這與制表符擴(kuò)展是 不 一樣的。
注解
如果 replace_whitespace 為假值,在一行的中間有可能出現(xiàn)換行符并導(dǎo)致怪異的輸出。 因此,文本應(yīng)當(dāng)(使用 str.splitlines() 或類似方法)拆分為段落并分別進(jìn)行自動(dòng)換行。drop_whitespace(默認(rèn): True) 如果為真值,每一行開頭和末尾的空白字符(在包裝之后、縮進(jìn)之前)會(huì)被丟棄。 但是段落開頭的空白字符如果后面不帶任何非空白字符則不會(huì)被丟棄。 如果被丟棄的空白字符占據(jù)了一個(gè)整行,則該整行將被丟棄。initial_indent(默認(rèn): '') 將被添加到被自動(dòng)換行輸出內(nèi)容的第一行的字符串。 其長(zhǎng)度會(huì)被計(jì)入第一行的長(zhǎng)度。 空字符串不會(huì)被縮進(jìn)。subsequent_indent(default: '') 將被添加到被自動(dòng)換行輸出內(nèi)容除第一行外的所有行的字符串。 其長(zhǎng)度會(huì)被計(jì)入除行一行外的所有行的長(zhǎng)度。fix_sentence_endings(默認(rèn): False) 如果為真值,TextWrapper 將嘗試檢測(cè)句子結(jié)尾并確保句子間總是以恰好兩個(gè)空格符分隔。 對(duì)于使用等寬字體的文本來(lái)說(shuō)通常都需要這樣。 但是,句子檢測(cè)算法并不完美:它假定句子結(jié)尾是一個(gè)小寫字母加字符 '.', '!' 或 '?' 中的一個(gè),并可能帶有字符 '"' 或 "'",最后以一個(gè)空格結(jié)束。 此算法的問(wèn)題之一是它無(wú)法區(qū)分以下文本中的 “Dr.”
[...] Dr. Frankenstein's monster [...] 和以下文本中的 “Spot.”
[...] See Spot. See Spot run [...] fix_sentence_endings 默認(rèn)為假值。
Since the sentence detection algorithm relies on string.lowercase for the definition of “l(fā)owercase letter,” and a convention of using two spaces after a period to separate sentences on the same line, it is specific to English-language texts.break_long_words(默認(rèn): True) 如果為真值,則長(zhǎng)度超過(guò) width 的單詞將被分開以保證行的長(zhǎng)度不會(huì)超過(guò) width。 如果為假值,超長(zhǎng)單詞不會(huì)被分開,因而某些行的長(zhǎng)度可能會(huì)超過(guò) width。 (超長(zhǎng)單詞將被單獨(dú)作為一行,以盡量減少超出 width 的情況。)break_on_hyphens(默認(rèn): True) 如果為真值,將根據(jù)英語(yǔ)的慣例首選在空白符和復(fù)合詞的連字符之后自動(dòng)換行。 如果為假值,則只有空白符會(huì)被視為合適的潛在斷行位置,但如果你確實(shí)不希望出現(xiàn)分開的單詞則你必須將 break_long_words 設(shè)為假值。 之前版本的默認(rèn)行為總是允許分開帶有連字符的單詞。max_lines(默認(rèn): None) 如果不為 None,則輸出內(nèi)容將最多包含 max_lines 行,并使 placeholder 出現(xiàn)在輸出內(nèi)容的末尾。
3.4 新版功能.placeholder(默認(rèn): ' [...]') 該文本將在輸出文本被截短時(shí)出現(xiàn)在文本末尾。
3.4 新版功能.TextWrapper 還提供了一些公有方法,類似于模塊層級(jí)的便捷函數(shù):wrap(text)對(duì) text (字符串) 中的單獨(dú)段落自動(dòng)換行以使每行長(zhǎng)度最多為 width 個(gè)字符。 所有自動(dòng)換行選項(xiàng)均獲取自 TextWrapper 實(shí)例的實(shí)例屬性。 返回由輸出行組成的列表,行尾不帶換行符。 如果自動(dòng)換行輸出結(jié)果沒(méi)有任何內(nèi)容,則返回空列表。fill(text)對(duì) text 中的單獨(dú)段落自動(dòng)換行并返回包含被自動(dòng)換行段落的單獨(dú)字符串。
總結(jié)
以上是生活随笔為你收集整理的unity 检测文本有没有自动换行_python3从零学习-5.1.5、文本自动换行与填充模块textwrap...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python的六大数据类型中可以改变_在
- 下一篇: python删除txt指定内容_pyth