python模块介绍 textwrap 文本包装和填充

出自:http://blog.csdn.net/oychw/article/details/8919337

2013-05-13 磁针石

#承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 博客:http://blog.csdn.net/oychw

#版权所有,转载刊登请来函联系

#深圳测试自动化python项目接单群113938272深圳会计软件测试兼职6089740

#深圳地摊群66250781武冈洞口城步新宁乡情群49494279

#自动化测试和python群组:http://groups.google.com/group/automation_testing_python

#参考资料:《ThePython Standard Libraryby Example 2011》

实例文本:

sample_text = '''

    The textwrap module can beused to format text for output in

    situations wherepretty-printing is desired.  It offers

    programmatic functionalitysimilar to the paragraph wrapping

    or filling features found inmany text editors.

'''

段落填充:

import textwrap

from textwrap_exampleimport sample_text

print 'Nodedent:\n'

printtextwrap.fill(sample_text, width=50)

执行结果:

# pythontextwrap_fill.py

No dedent:

     The textwrap module can be used to format

text for outputin     situations where pretty-

printing is desired.  It offers    programmatic

functionalitysimilar to the paragraph wrapping

or fillingfeatures found in many text editors.

结果为左对齐,第一行有缩进。行中的空格继续保留。

移除缩进:

import textwrap

fromtextwrap_example import sample_text

dedented_text = textwrap.dedent(sample_text)

print 'Dedented:'

printdedented_text

执行结果:

# pythontextwrap_dedent.py

Dedented:

The textwrapmodule can be used to format text for output in

situations wherepretty-printing is desired.  It offers

programmaticfunctionality similar to the paragraph wrapping

or fillingfeatures found in many text editors.

这样第一行就不会缩进。

结合移除缩进和填充:

import textwrap

fromtextwrap_example import sample_text

dedented_text =textwrap.dedent(sample_text).strip()

for width in [ 45,70 ]:

       print '%d Columns:\n' % width

       print textwrap.fill(dedented_text,width=width)

       print

执行结果:

# pythontextwrap_fill_width.py

45 Columns:

The textwrapmodule can be used to format

text for output insituations where pretty-

printing isdesired.  It offers programmatic

functionalitysimilar to the paragraph

wrapping orfilling features found in many

text editors.

70 Columns:

The textwrapmodule can be used to format text for output in

situations wherepretty-printing is desired.  It offersprogrammatic

functionality similarto the paragraph wrapping or filling features

found in many texteditors.

悬挂缩进:悬挂缩进第一行的缩进小于其他行的缩进。

import textwrap

fromtextwrap_example import sample_text

dedented_text =textwrap.dedent(sample_text).strip()

printtextwrap.fill(dedented_text,

                    initial_indent='',

                    subsequent_indent=' ' * 4,

                    width=50,

                    )

       执行结果:

# pythontextwrap_hanging_indent.py

The textwrapmodule can be used to format text for

    output in situations where pretty-printingis

    desired. It offers programmatic functionality

    similar to the paragraph wrapping orfilling

    features found in many text editors.

其中的’’*4还可以使用其他字符代替。

              TextWrap提供函数wrap()和fill(), 以及TextWrapper类,工具函数dedent(). 通常包装或者填充一两个字符串使用wrap()和fill()。其他情况使用TextWrapper更高效。

textwrap.wrap(text[,width[, ...]])

包装单个段落(text为输入,系字符串),每行最长宽度width。返回输出行的列表,最后行无换行符。Width默认70。

textwrap.fill(text[,width[, ...]])

包装单段文字,并返回包含包裹段落的字符串。实际上是"\n".join(wrap(text,...))的缩写。wrap() and fill()创建TextWrapper实例,并调用一个方法。这些实例不被重用,所以包装/填充很多文本字符串要构造自己的TextWrapper对象更有效。TextWrapper.break_long_words设置是否拆长单词。

textwrap.dedent(text)

反缩进去除每行行首的空白。这方便显示三引号中的内容而不修改其源代码中的缩进。

TextWrap提供的属性如下:

width:最大换行宽度。默认70.

expand_tabs:是否替换tab为空格,默认为true。

以下属性略,参见手册。

原文地址:https://www.cnblogs.com/mfryf/p/3090054.html