Python - 重新格式化段落

  • 简述

    当我们处理大量文本并将其转换为可呈现的格式时,需要对段落进行格式化。我们可能只想打印具有特定宽度的每一行,或者在打印一首诗时尝试增加下一行的缩进。在本章中,我们使用一个名为textwrap3根据需要格式化段落。
    首先我们需要安装所需的包如下
    
     pip install textwrap3 
    
  • 换行到固定宽度

    在此示例中,我们为段落的每行指定 30 个字符的宽度。通过指定宽度参数的值来使用 wrap 函数。
    
    from textwrap3 import wrap
    text = 'In late summer 1945, guests are gathered for the wedding reception of Don Vito Corleones daughter Connie (Talia Shire) and Carlo Rizzi (Gianni Russo). Vito (Marlon Brando), the head of the Corleone Mafia family, is known to friends and associates as Godfather. He and Tom Hagen (Robert Duvall), the Corleone family lawyer, are hearing requests for favors because, according to Italian tradition, no Sicilian can refuse a request on his daughters wedding day.'
    x = wrap(text, 30)
    for i in range(len(x)):
        print(x[i])
    
    当我们运行上述程序时,我们得到以下输出 -
    
    In late summer 1945, guests
    are gathered for the wedding
    reception of Don Vito
    Corleones daughter Connie
    (Talia Shire) and Carlo Rizzi
    (Gianni Russo). Vito (Marlon
    Brando), the head of the
    Corleone Mafia family, is
    known to friends and
    associates as Godfather. He
    and Tom Hagen (Robert Duvall),
    the Corleone family lawyer,
    are hearing requests for
    favors because, according to
    Italian tradition, no Sicilian
    can refuse a request on his
    daughters wedding day.
    
  • 可变缩进

    在这个例子中,我们为要打印的一首诗的每一行增加缩进。
    
    import textwrap3
    FileName = ("path\poem.txt")
    print("**Before Formatting**")
    print(" ")
    data=file(FileName).readlines()
    for i in range(len(data)):
       print data[i]
       
    print(" ")
    print("**After Formatting**")
    print(" ")
    data=file(FileName).readlines()
    for i in range(len(data)):
       dedented_text = textwrap3.dedent(data[i]).strip()
       print dedented_text
    
    当我们运行上述程序时,我们得到以下输出 -
    
    **Before Formatting**
     Summer is here.
      Sky is bright.
       Birds are gone.
        Nests are empty.
         Where is Rain?
    **After Formatting**
     
    Summer is here.
    Sky is bright.
    Birds are gone.
    Nests are empty.
    Where is Rain?