python模块学习- textwrap 文本包装和填充

python模块学习- textwrap 文本包装和填充

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() andfill()创建TextWrapper实例,并调用一个方法。这些实例不被重用,所以包装/填充很多文本字符串要构造自己的TextWrapper对象更有效。TextWrapper.break_long_words设置是否拆长单词。

textwrap.dedent(text)

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


代码实例:

sample_text = '''

   The textwrap module can beusedto format text for output in

   situationswherepretty-printing is desired.  It offers

   programmaticfunctionalitysimilar to the paragraph wrapping

   or filling features foundinmany text editors.

'''

段落填充:

1
2
3
4
5
import  textwrap
from  textwrap_exampleimportsample_text
   
print  'Nodedent:\n'
printtextwrap.fill(sample_text, width = 50 )


执行结果:

# pythontextwrap_fill.py

No dedent:

 

    The textwrap module can beused to format

text for outputin     situationswhere pretty-

printing is desired.  It offers   programmatic

functionalitysimilar to the paragraph wrapping

or fillingfeatures found in many text editors.

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

移除缩进:

1
2
3
4
5
6
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.  Itoffers

programmaticfunctionality similar to the paragraph wrapping

or fillingfeatures found in many text editors.

这样第一行就不会缩进。

结合移除缩进和填充:

1
2
3
4
5
6
7
8
import  textwrap
fromtextwrap_example  import  sample_text
   
dedented_text  = textwrap.dedent(sample_text).strip()
for  width  in  45 , 70  ]:
        print  '%dColumns:\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.  Itoffersprogrammatic

functionality similarto the paragraph wrapping or fillingfeatures

found in many texteditors.

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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 usedto  format  text  for
     output  in  situationswhere pretty - printingis
     desired.It offers programmatic functionality
     similarto the paragraph wrapping orfilling
     featuresfound  in  manytext editors.

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

如对本文内容有疑问,或想进一步交流学习,欢迎通过以下方式:
1.  PythonTab论坛
2. pythontab技术互助群:87464755

你可能感兴趣的:(python模块学习- textwrap 文本包装和填充)