zoukankan      html  css  js  c++  java
  • 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。

    以下属性略,参见手册。

  • 相关阅读:
    Open 5分钟:恺英收集闵懿
    Open 5分钟:摩卡全国宋啸飞
    互联网十大病毒集体名单曝光
    浩大游戏CEO谭群钊:2011将进一步加大海内拓展
    CustomSongSender.com:定制歌曲作为礼物
    米聊:跨运营商收费即时通讯
    说说Google Cloud Connect
    松下将于3月19日出售无需触碰的感触式便携电视
    Groupon中国网站贵客上线 获腾讯云锋基金投资
    诺基亚西门子并购摩托罗案前景堪忧
  • 原文地址:https://www.cnblogs.com/mfryf/p/3090054.html
Copyright © 2011-2022 走看看