python iotextwrapp执行不动_Python 3.7.2rc1 中文文档 - textwrap —Literals 环绕和填充 | Docs4dev...

textwrap模块提供了一些便利Function,而TextWrapper这个类完成了所有工作。如果只是包装或填充一两个文本字符串,那么便利Function应该足够好;否则,您应使用TextWrapper的实例以提高效率。

textwrap. wrap(* text , width = 70 ,** kwargs *)

将单个段落包装在* text (字符串)中,因此每一行最多为 width *个字符长。返回输出行列表,不带finally换行符。

可选的关键字参数对应于TextWrapper的实例属性,在下面记录。 * width *默认为70。

textwrap. fill(* text , width = 70 ,** kwargs *)

将单个段落包装在* text *中,并返回包含已包装段落的单个字符串。 fill()是的简写

"\n".join(wrap(text, ...))

特别是fill()接受与wrap()完全相同的关键字参数。

textwrap. shorten(* text , width ,** kwargs *)

折叠并截断给定的* text 以适合给定的 width *。

首先,* 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...'

3.4 版的新Function。

textwrap. dedent(* text *)

从* text *中的每一行中删除所有常见的前导空格。

这可以使三引号字符串与显示的左边缘对齐,同时仍将它们以缩进形式显示在源代码中。

请注意,制表符和空格都被视为空格,但它们并不相等:第" hello"和"\thello"行被认为没有公共的前导空格。

仅包含空格的行在 Importing 中被忽略,并在输出中标准化为单个换行符。

For example:

def test():

# end first line with \ to avoid the empty line!

s = '''\

hello

world

'''

print(repr(s)) # prints ' hello\n world\n '

print(repr(dedent(s))) # prints 'hello\n world\n'

textwrap. indent(* text , prefix ,predicate = None *)

在* text 中所选行的开头添加 prefix *。

pass调用text.splitlines(True)来分隔行。

默认情况下,前缀被添加到并非仅由空格组成的所有行(包括任何行尾)。

For example:

>>> s = 'hello\n\n \nworld'

>>> indent(s, ' ')

' hello\n\n \n world'

可选的* predicate 参数可用于控制缩进的行。例如,很容易将 prefix *添加到空行和仅空格行:

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

+ hello

+

+

+ world

版本 3.3 中的新Function。

wrap(),fill()和shorten()pass创建TextWrapper实例并在其上调用单个方法来工作。该实例不会被重用,因此对于使用wrap()和/或fill()处理许多文本字符串的应用程序,创建自己的TextWrapper对象可能更有效。

最好将文本包装在空白处,并在连字符后的连字符后紧跟;只有这样,除非有必要,除非TextWrapper.break_long_words设置为 false,否则长单词将被打断。

class * textwrap. TextWrapper(*** kwargs *)

TextWrapper构造函数接受许多可选的关键字参数。每个关键字参数都对应一个实例属性,例如

wrapper = TextWrapper(initial_indent="* ")

是相同的

wrapper = TextWrapper()

wrapper.initial_indent = "* "

您可以多次重复使用相同的TextWrapper对象,并且可以pass在使用之间直接分配给实例属性来更改其任何选项。

TextWrapper实例属性(以及构造函数的关键字参数)如下:

width

(默认值:70)换行的最大长度。只要 Importing 文本中没有单个单词的长度超过width,TextWrapper保证没有输出行的长度超过width个字符。

expand_tabs

(默认值:True)如果为 true,则将使用* text 的expandtabs()方法将 text *中的所有制表符扩展为空格。

tabsize

(默认值:8)如果expand_tabs为 true,则* text *中的所有制表符都将扩展为零个或多个空格,具体取决于当前列和给定的制表符大小。

版本 3.3 中的新Function。

replace_whitespace

(默认值:True)如果为 true,则在制表符扩展之后但在包装之前,wrap()方法将用单个空格替换每个空白字符。替换的空白字符如下:选项卡,换行符,垂直选项卡,换页和回车('\t\n\v\f\r')。

Note

如果expand_tabs为 false 且replace_whitespace为 true,则每个制表符都将替换为一个空格,这与制表符 extensions*并非相同。

Note

如果replace_whitespace为假,则换行符可能会出现在一行的中间,并导致奇怪的输出。因此,应将文本拆分为段落(使用str.splitlines()或类似名称),并分别包装。

drop_whitespace

(默认值:True)如果为 true,则会删除每行开头和结尾(在换行后但在缩进之前)的空格。但是,如果非空格后面紧跟段落开头,则不会删除空格。如果要删除的空格占用了整行,则将删除整行。

initial_indent

(默认值:'')将在包装输出的第一行之前添加的字符串。计入第一行的长度。空字符串不缩进。

subsequent_indent

(默认值:'')将在包装输出的所有行(除第一行)之前添加的字符串。除第一行外,均计入每行的长度。

fix_sentence_endings

(默认值:False)如果为 true,则TextWrappertry检测句子的结尾并确保句子始终完全由两个空格分隔。对于等宽字体的文本,通常需要这样做。但是,句子检测算法是不完善的:它假定句子结尾由小写字母组成,后跟'.','!'或'?'之一,然后可能跟着'"'或"'"之一,后跟一个空格。这种算法的一个问题是算法无法检测“ Dr.”之间的差异。在

[...] Dr. Frankenstein's monster [...]

和“现货”。在

[...] See Spot. See Spot run [...]

由于句子检测算法依靠string.lowercase来定义“小写字母”,并且约定在句点后使用两个空格来分隔同一行中的句子,因此它专用于英语文本。

break_long_words

(默认值:True)如果为 true,则长于width的单词将被打断,以确保没有行长于width。如果为假,则长字不会被打断,某些行可能长于width。 (为了避免超出width的数量,长行单词将自己放在一行上。)

break_on_hyphens

(默认值:True)如果为 true,则按照英语习惯,换行最好在复合词和连字符后的连字符后出现。如果为 false,则仅将空格视为换行符的潜在好地方,但如果要使用 true 不安全的单词,则需要将break_long_words设置为 false。以前版本中的默认行为是始终允许断开连字符。

max_lines

(默认值:None)如果不是None,则输出最多包含* max_lines 行,并且 placeholder *出现在输出的末尾。

3.4 版的新Function。

placeholder

(默认值:' [...]')如果输出文本被截断,将出现在输出文本末尾的字符串。

3.4 版的新Function。

TextWrapper还提供了一些公共方法,类似于模块级的便捷Function:

wrap(文本)

将单个段落包装为* text *(字符串),因此每一行最多为width个字符。所有包装选项均取自TextWrapper实例的实例属性。返回输出行列表,不带finally换行符。如果包装的输出没有内容,则返回的列表为空。

fill(文本)

将单个段落包装在* text *中,并返回包含已包装段落的单个字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值