[Python标准库]textwrap——格式化文本段落

textwrap——格式化文本段落

        作用:通过调整换行符在段落中出现的位置来格式化文本。
        Python 版本:2.5 及以后版本
        需要美观打印时,可以用 textwrap 模块来格式化要输出的文本。这个模块允许通过编程提供类似段落自动换行或填充特性等功能。
示例数据

# textwrap_example.py

sample_text = '''
    The textwrap module can be used to format text for output in
    situations where pretty-printing is desired.  It offers
    programmatic functionality similar to the paragraph wrapping
    or filling features found in many text editors.
'''

填充段落
        fill() 函数取文本作为输入,生成格式化的文本作为输出。

import textwrap
from textwrap_example import sample_text

print 'No dedent:\n'
print textwrap.fill(sample_text, width=50)
去除现有缩进
        在前面的例子中,输出里混合嵌入了制表符和额外的空格,所以格式不太美观。从示例文本删除所有行中都有的空白符前缀可以生成更好的结果,从而能直接使用 Python 代码中的 docstring 或嵌入的多行字符串,同时自动去除代码的格式化。示例字符串人为地引入了一级缩进,以便展示这个特性。

import textwrap
from textwrap_example import sample_text

dedeted_text = textwrap.dedent(sample_text)
print 'Dedented:'
print dedented_text
        由于 dedent(去除缩进)与 indent(缩进)正好相反,因此这里的结果是得到一个文本块,而且删除了各行最前面都有的空白符。如果某一行比其他行缩进更多,则会有一些空白符未删除。
        以下输入:
 Line one.
   Line two.
 Line three.
        会变成:
Line one.
  Line two.
Line three.
结合 dedent 和 fill
        接下来,可以把去除缩进的文本传入 fill(),并提供一组不同的 width 值

import textwrap
from textwrap_example import sample_text

dedeted_text = textwrap.dedent(sample_text).strip()
for width in [ 45, 70 ]:
    print '%d Columns:\n' % width
    print textwrap.fill(dedented_text, width=width)
    print

       这会生成指定宽度的输出。
悬挂缩进
        不仅输出的宽度可以设置,还可以单独控制第一行的缩进,以区别后面各行。

import textwrap
from textwrap_example import sample_text

dedeted_text = textwrap.dedent(sample_text).strip()
print textwrap.fill(dedented_text,
                    initial_indent='',
                    subsequent_indent=' ' * 4,
                    width=50,
                    )
       这样会生成一种悬挂缩进,即第一行的缩进小于其他行的缩进。
        缩进值还可以包含非空白字符。例如,悬挂缩进可以加前缀 * 来生成项目符号。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值