unity 检测文本有没有自动换行_python3从零学习-5.1.5、文本自动换行与填充模块textwrap...

4d1b36927f4822fbe292b96c87603875.png
TextWrapper  模块提供了一些快捷函数,以及可以完成所有工作的类 TextWrapper           
如果你只是要对一两个文本字符串进行自动换行或填充,快捷函数应该就够用了;否则的话,你应该使用 TextWrapper          的实例来提高效率。
textwrap.wrap(text, width=70, **kwargs)对 text (字符串) 中的单独段落自动换行以使每行长度最多为 width 个字符。 返回由输出行组成的列表,行尾不带换行符。
可选的关键字参数对应于 TextWrapper          的实例属性,具体文档见下。 width 默认为 70。
请参阅 TextWrapper.wrap()               方法了解有关 wrap()      行为的详细信息。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) 
对 text 中的单独段落自动换行,并返回一个包含被自动换行段落的单独字符串。 fill()     是以下语句的快捷方式
"n".join(wrap(text, ...)) 特别要说明的是,fill()  接受与 wrap()     完全相同的关键字参数。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 中的空格(所有连续空格替换为单个空格)。 如果结果能适合 width 则将其返回。 否则将丢弃足够数量的末尾单词以使得剩余单词加 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,       exand_tabs,         drop_whitespace            和 replace_whitespace                  的值将没有任何效果。 
3.4 新版功能.textwrap.dedent(text)移除 text 中每一行的任何相同前缀空白符。
这可以用来清除三重引号字符串行左侧空格,而仍然在源码中显示为缩进格式。
请注意制表符和空格符都被视为是空白符,但它们并不相等:以下两行 " hello" 和 "thello" 不会被视为具有相同的前缀空白符。
例如
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 中选定行的开头。
通过调用 text.splitlines(True) 来对行进行拆分。
默认情况下,prefix 会被添加到所有不是只由空白符(包括任何行结束符)组成的行。
例如
>>>
>>> s = 'hellonn nworld' 
>>> indent(s, '  ') 
'  hellonn n  world'可选的 predicate 参数可用来控制哪些行要缩进。 例如,可以很容易地为空行或只有空白符的行添加 prefix:
>>>
>>> print(indent(s, '+ ', lambda line: True)) 
+ hello
+
+
+ world3.3 新版功能.wrap(),       fill()      和 shorten()       的作用方式为创建一个 TextWrapper         实例并在其上调用单个方法。 该实例不会被重用,因此对于要使用 wrap()  和/或 fill()     来处理许多文本字符串的应用来说,创建你自己的 TextWrapper         对象可能会更有效率。
文本最好在空白符位置自动换行,包括带连字符单词的连字符之后;长单词仅在必要时会被拆分,除非 TextWrapper.break_long_words                        被设为假值。class textwrap.TextWrapper(**kwargs)TextWrapper  构造器接受多个可选的关键字参数。 每个关键字参数对应一个实例属性,比如说
wrapper = TextWrapper(initial_indent="* ") 就相当于
wrapper = TextWrapper() 
wrapper.initial_indent = "* " 你可以多次重用相同的 TextWrapper         对象,并且你也可以在使用期间通过直接向实例属性赋值来修改它的任何选项。
TextWrapper          的实例属性(以及构造器的关键字参数)如下所示:width(默认: 70) 自动换行的最大行长度。 只要输入文本中没有长于 width     的单个单词,TextWrapper         就能保证没有长于 width 个字符的输出行。expand_tabs(默认: True) 如果为真值,则 text 中所有的制表符将使用 text 的 expandtabs() 方法扩展为空格符。tabsize(默认: 8) 如果 expand_tabs         为真值,则 text 中所有的制表符将扩展为零个或多个空格,具体取决于当前列位置和给定的制表宽度。
3.3 新版功能.replace_whitespace(default: True) 如果为真值,在制表符扩展之后、自动换行之前,wrap() 方法将把每个空白字符都替换为单个空格。 会被替换的空白字符如下:制表,换行,垂直制表,进纸和回车 ('tnvfr')。
注解
如果 expand_tabs         为假值且 replace_whitespace               为真值,每个制表符将被替换为单个空格,这与制表符扩展是 不 一样的。
注解
如果 replace_whitespace               为假值,在一行的中间有可能出现换行符并导致怪异的输出。 因此,文本应当(使用 str.splitlines()             或类似方法)拆分为段落并分别进行自动换行。drop_whitespace(默认: True) 如果为真值,每一行开头和末尾的空白字符(在包装之后、缩进之前)会被丢弃。 但是段落开头的空白字符如果后面不带任何非空白字符则不会被丢弃。 如果被丢弃的空白字符占据了一个整行,则该整行将被丢弃。initial_indent(默认: '') 将被添加到被自动换行输出内容的第一行的字符串。 其长度会被计入第一行的长度。 空字符串不会被缩进。subsequent_indent(default: '') 将被添加到被自动换行输出内容除第一行外的所有行的字符串。 其长度会被计入除行一行外的所有行的长度。fix_sentence_endings(默认: False) 如果为真值,TextWrapper         将尝试检测句子结尾并确保句子间总是以恰好两个空格符分隔。 对于使用等宽字体的文本来说通常都需要这样。 但是,句子检测算法并不完美:它假定句子结尾是一个小写字母加字符 '.', '!' 或 '?' 中的一个,并可能带有字符 '"' 或 "'",最后以一个空格结束。 此算法的问题之一是它无法区分以下文本中的 “Dr.”
[...] Dr. Frankenstein's monster [...] 和以下文本中的 “Spot.”
[...] See Spot. See Spot run [...] fix_sentence_endings                 默认为假值。
Since the sentence detection algorithm relies on string.lowercase for the definition of “lowercase 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(默认: True) 如果为真值,则长度超过 width 的单词将被分开以保证行的长度不会超过 width。 如果为假值,超长单词不会被分开,因而某些行的长度可能会超过 width。 (超长单词将被单独作为一行,以尽量减少超出 width  的情况。)break_on_hyphens(默认: True) 如果为真值,将根据英语的惯例首选在空白符和复合词的连字符之后自动换行。 如果为假值,则只有空白符会被视为合适的潜在断行位置,但如果你确实不希望出现分开的单词则你必须将 break_long_words             设为假值。 之前版本的默认行为总是允许分开带有连字符的单词。max_lines(默认: None) 如果不为 None,则输出内容将最多包含 max_lines 行,并使 placeholder 出现在输出内容的末尾。
3.4 新版功能.placeholder(默认: ' [...]') 该文本将在输出文本被截短时出现在文本末尾。
3.4 新版功能.TextWrapper         还提供了一些公有方法,类似于模块层级的便捷函数:wrap(text)对 text (字符串) 中的单独段落自动换行以使每行长度最多为 width    个字符。 所有自动换行选项均获取自 TextWrapper         实例的实例属性。 返回由输出行组成的列表,行尾不带换行符。 如果自动换行输出结果没有任何内容,则返回空列表。fill(text)对 text 中的单独段落自动换行并返回包含被自动换行段落的单独字符串。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501855.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

红黑树和平衡二叉树的区别_一文搞懂红黑树

文章参考 | https://segmentfault.com/a/1190000012728513前言当在10亿数据进行不到30次比较就能查找到目标时,不禁感叹编程之魅力!二叉树在了解红黑树之前,先要了解二叉树,又叫二叉查找树、二叉搜索树、二叉排序树。二叉树顾名思…

mysql table keys_MySQL Explain详解

在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做…

程序员肚子越来越大_肚子越来越大,除了肥胖还可能是疾病信号!腰间搓一搓,排出痰浊,消脂防病~...

☀ 定期推送健康知识,生活窍门,演出资讯,旅游信息,商家优惠等诸多优质内容,接地气、重服务的微信平台!关注我们妥妥没错!今天我们所说的“要命的肚子”就是一种肥胖,众所周知导致肥胖…

高级java技术web组件_(重温)JavaWeb--Servlet技术(二)(JavaWeb 的三大组件之一)...

1.HttpServletRequest 类a)HttpServletRequest 类有什么作用。每次只要有请求进入 Tomcat 服务器,Tomcat 服务器就会把请求过来的 HTTP 协议信息解析好封装到 Request 对象中。 然后传递到 service 方法(doGet 和 doPost)中给我们使用。我们可以通过 HttpServletReq…

svm算法原理_机器学习——分类算法(1)

一、 K近邻KNN算法的基本思想就是在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那…

svn复制出来的java_从svn下载的项目(或从别处拷贝来的)报错的可能情况以及解决经验...

1、sdk版本不符合。举个栗子:如果svn上的项目是用sdk10的,但是你电脑上最低sdk是14的,那么这时候就会报错。解决办法:a、鼠标点击项目,b、快捷键“altenter”,c、左侧点击“Android”,右侧选中一…

spring揭秘_被问到了! Spring 和 Spring Boot 之间到底有啥区别?

相信很多小伙伴和我一样,常用Spring 和Spring Boot 但是就是没有研究二者之间到底有什么区别?今天就来大揭秘 ↓概述对于 Spring和 SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习 SpringBoot的我当时也是一头雾水&am…

sql 删除最低分数_软件测试从业者:必备SQL语句21天打卡,前10天

一、价值:1. 根据这些年的经验,帮软件测试从业者精选出:1)日常工作中,需要用到的SQL语句;2)软测面试中,笔试 / 面试 ,需要用到的 SQL问题 & 答案 ;2. SQL这种硬技能 &#xff0c…

php两个手机号正则表达式_php 手机号码验证正则表达式

php 手机号码验证正则表达式比较简洁的代码一:$str ;$isMatched preg_match(/^0?(13|14|15|17|18)[0-9]{9}$/, $str, $matches);var_dump($isMatched, $matches);代码二//正则表达式$tel "15558530459"; //作者的手机号码,如果有疑问可以电话联系我,或…

ssms没有弹出服务器验证_使用SSMS扫描和查找SQL Server数据库的潜在安全漏洞

SQL Server Management Studio 17.4或更高版本的SSMS中提供了SQL Server漏洞侦测(VA)功能,此功能允许SQL Server扫描您的数据库以查找潜在的安全漏洞,并且可以针对SQL Server 2012或更高版本运行。如果您还没有使用SSMS上的较新版本,请不要担…

驱动api_消费者驱动契约已死?

吐槽文一篇。契约的一些问题在实践前后端分离的这些年来,已经诞生了一些技术与工具让前后端进行沟通:契约的 Mock 服务(Mock Server)。用于模拟一个服务器,为特定的接口返回特定的值。契约测试。对前后端协定的 API 进…

php表单提交邮箱_最全实现dede订单表单提交发送到指定邮箱(附前台设置)

打造销售型网站的订单系统。不是所有销售都有权限登陆网站后台查看订单,特别是外地出差时,用户下了订单后不能及时服务用户,可能会造成订单丢失。但dedecms默认的订单提交后只能在后台看到的,每次都要登陆到后台去查看很麻烦。以下…

php ckeditor 配置,Laravel5.6框架使用CKEditor5相关配置详解

本文实例讲述了Laravel5.6框架使用CKEditor5相关配置。分享给大家供大家参考,具体如下:Laravel 相关配置文件的上传与存储参考文档:创建符号链接php artisan storage:linkproject/public/storage -> project/storage/app/public修改配置文…

udp怎么保证不丢包_在 Flink 算子中使用多线程如何保证不丢数据?

分析痛点笔者线上有一个 Flink 任务消费 Kafka 数据,将数据转换后,在 Flink 的 Sink 算子内部调用第三方 api 将数据上报到第三方的数据分析平台。这里使用批量同步 api,即:每 50 条数据请求一次第三方接口,可以通过批…

堆排序时间复杂度_图解堆结构、堆排序及堆的应用

前言这次我们介绍另一种时间复杂度为 O(nlogn) 的选择类排序方法叫做堆排序。我将从以下几个方面介绍:堆的结构堆排序优化的堆排序原地堆排序堆的应用堆的结构什么是堆?我给出了百度的定义,如下:堆(Heap)是计算机科学中一类特殊的…

恶意软件分析沙箱在网络安全策略中处于什么位置?

恶意软件分析沙箱提供了一种全面的恶意软件分析方法,包括静态和动态技术。这种全面的评估可以更全面地了解恶意软件的功能和潜在影响。然而,许多组织在确定在其安全基础设施中实施沙箱的最有效方法方面面临挑战。让我们看一下可以有效利用沙盒解决方案的…

php websocket 帧封装,swoole websocket封装类和调用

上代码 ws.php/*** ws 优化 基础类库* User: singwa* Date: 18/3/2* Time: 上午12:34*/class Ws {CONST HOST "0.0.0.0";CONST PORT 9512;public $ws null;public function __construct() {$this->ws new swoole_websocket_server("0.0.0.0", 9512)…

夸克浏览器怎么安装脚本_广告看烦了?别砸手机!这五款浏览器能拯救你

哈喽大家好,欢迎来到黑马公社。随着各种良莠不齐的内容开始泛滥,黑马发现自己很难通过网络第一时间找到自己想要的内容。在电脑上,黑马为自己的每个浏览器都安装了不下三个广告屏蔽插件,而在手机上,很难。先不说手机浏…

php 今天 明天 后天 显示10天,【微信小程序】实现含有今天,明天,后天的日期组件...

封面图.JPG前言做过微信小程序的前端er都知道,小程序有个日期组件,叫picker,但是,需求方要求日期和时间都要显示的,用picker组件的话,那就用到两个picker,date和time,就是说要让用户…

php数组实例,php常用数组函数实例小结

本文实例总结了php常用数组函数。分享给大家供大家参考,具体如下:1. array array_merge(array $array1 [, array $array2 [, $array]])函数功能:将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回结果的…