Search
Close this search box.
Módulo textwrap: formatação de textos com Python
formatação de textos com Python

Posts Relacionados:

Aprenda como usar o módulo textwrap para realizar formatação de textos facilmente em Python e automatizar suas tarefas rotineiras.

Receba nossa newsletter

módulo textwrap para formatação de textos

Python formatar textos

 O módulo textwrap em Python é projetado para realizar a formatação de textos. Ele possui várias funções e uma classe para gerenciar quebras, recuo, espaçamento e outras tarefas relacionadas à formatação de textos. Conheça as principais funcionalidades deste módulo a seguir.

wrap()

O método wrap() quebra um parágrafo único em textos menores para que cada linha tenha um número máximo de caracteres de largura. Ele retorna uma lista de linhas de saída, sem novas linhas finais. Veja um exemplo de como usá-lo:

				
					import textwrap

minha_string_longa = "Nascido no Morro do Livramento, Rio de Janeiro, de uma família pobre, mal estudou em escolas públicas e nunca frequentou universidade.[10] Para o considerado crítico literário norte-americano Harold Bloom, Machado de Assis é o maior escritor negro de todos os tempos,[11] embora outros estudiosos prefiram especificar que Machado era mestiço,[12] filho de um descendente de negros alforriados e de uma portuguesa da ilha de São Miguel. Seus biógrafos notam que, interessado pela boemia e pela corte, lutou para subir socialmente abastecendo-se de superioridade intelectual e da cultura da capital brasileira."

string_formatada = textwrap.wrap(minha_string_longa, width=50)
for linha in string_formatada:
    print(linha)

# resultado:
# Nascido no Morro do Livramento, Rio de Janeiro, de
# uma família pobre, mal estudou em escolas públicas
# e nunca frequentou universidade.[10] Para o
# considerado crítico literário norte-americano
# Harold Bloom, Machado de Assis é o maior escritor
# negro de todos os tempos,[11] embora outros
# estudiosos prefiram especificar que Machado era
# mestiço,[12] filho de um descendente de negros
# alforriados e de uma portuguesa da ilha de São
# Miguel. Seus biógrafos notam que, interessado pela
# boemia e pela corte, lutou para subir socialmente
# abastecendo-se de superioridade intelectual e da
# cultura da capital brasileira.

				
			

Neste exemplo, primeiro importamos o modulo textwrap. Depois, definimos o texto que desejamos formatar. O método wrap() é usado com o parâmetro width que especifica a largura máxima que o texto deve possuir em cada linha.

fill()

Semelhante ao método wrap(), a função fill() quebra um parágrafo de texto. Porém, diferentemente do metodo wrap(), fill() retorna uma única string com novas linhas inseridas nos locais apropriados. Ele é útil para formatar um texto para caber em uma largura específica, definida com o parâmetro width como ilustrado abaixo:

				
					minha_string_longa = "Para isso, assumiu diversos cargos públicos, passando pelo Ministério da Agricultura, do Comércio e das Obras Públicas, e conseguindo precoce notoriedade em jornais onde publicava suas primeiras poesias e crônicas. Machado de Assis pôde assistir, durante sua vida, que abarca o final da primeira metade do século XIX até os anos iniciais do século XX, a enormes mudanças históricas na política, na economia e na sociedade brasileira e também mundial."

string_formatada = textwrap.fill(minha_string_longa, width=40)
print(string_formatada)
    
# resultado:
# Para isso, assumiu diversos cargos
# públicos, passando pelo Ministério da
# Agricultura, do Comércio e das Obras
# Públicas, e conseguindo precoce
# notoriedade em jornais onde publicava
# suas primeiras poesias e crônicas.
# Machado de Assis pôde assistir, durante
# sua vida, que abarca o final da primeira
# metade do século XIX até os anos
# iniciais do século XX, a enormes
# mudanças históricas na política, na
# economia e na sociedade brasileira e
# também mundial.

				
			

Shorten()

A função shorten() trunca uma string para que ela caiba em uma largura especificada. Ela substitui a parte truncada por um espaço reservado. O espaço padrão é […], mas pode ser personalizado. Veja como usá-lo:

				
					
minha_string_longa = "A extensa obra machadiana constitui-se de dez romances, 205 contos,[15] dez peças teatrais, cinco coletâneas de poemas e sonetos, e mais de seiscentas crônicas.[16][17] Machado de Assis é considerado o introdutor do Realismo no Brasil, com a publicação de Memórias Póstumas de Brás Cubas (1881).[18][19] Este romance é posto ao lado de todas suas produções posteriores, Quincas Borba, Dom Casmurro, Esaú e Jacó e Memorial de Aires, ortodoxamente conhecidas como pertencentes à sua segunda fase, em que notam-se traços de crítica social, ironia e até pessimismo, embora não haja rompimento de resíduos românticos. "

string_formatada = textwrap.shorten(minha_string_longa, width=100)
print(string_formatada)

# resultado
# A extensa obra machadiana constitui-se de dez romances, 205 contos,[15] dez peças teatrais, [...]

				
			

Neste exemplo, o parâmetro width define o número máximo de caracteres que o texto deve exibir.

indent()

A função indent() adiciona um prefixo, o qual pode ser um espaço, ao início das linhas selecionadas no texto.

				
					
minha_string = """
Sua obra foi de fundamental importância para as escolas
literárias brasileiras do século XIX e do século XX
e surge nos dias de hoje como de grande interesse
acadêmico e público para entender o Brasil e o mundo.
"""

string_formatada = textwrap.indent(minha_string, '  ')
print(string_formatada)

# resultado:

#   Sua obra foi de fundamental importância para as escolas
#   literárias brasileiras do século XIX e do século XX
#   e surge nos dias de hoje como de grande interesse
#   acadêmico e público para entender o Brasil e o mundo.

				
			

dedent()

Essa função remove qualquer espaço em branco comum à esquerda de cada linha em um texto. Ela é útil para limpar strings de várias linhas ou docstrings. Por exemplo, se um texto tiver um recuo que você deseja remover, use a função dedent() antes de quebrá-lo ou preenchê-lo.

				
					minha_string_com_recuo = """
        Dessa fase, os críticos destacam que suas melhores obras 
    são as do que se passou a chamar de "Trilogia Realista".[1] 
    Sua primeira fase literária é constituída de obras 
    como Ressurreição, A Mão e a Luva, Helena e Iaiá Garcia, 
    onde notam-se características herdadas do Romantismo, 
    ou "convencionalismo", como prefere a crítica moderna.[20]
"""

string_formatada = textwrap.dedent(minha_string_com_recuo).strip()
print(string_formatada)

# resultado:
# Dessa fase, os críticos destacam que suas melhores obras 
# são as do que se passou a chamar de "Trilogia Realista".[1] 
# Sua primeira fase literária é constituída de obras 
# como Ressurreição, A Mão e a Luva, Helena e Iaiá Garcia, 
# onde notam-se características herdadas do Romantismo, 
# ou "convencionalismo", como prefere a crítica moderna.[20]
				
			

Classe TextWrapper

Além dos métodos mostrados acima, o módulo textwrap conta com a classe TextWrapper. Ela fornece mais flexibilidade e controle sobre a formatação de textos. Com ela, podemos definir vários parâmetros que afetam como o texto é quebrado. Alguns de seus parâmetros são:

width: determina o tamanho máximo das linhas quebradas (o padrão é 70 caracteres).

expand_tabs: converte tabulações em espaços.

replace_whitespace: substitui caracteres de espaço em branco por um único espaço.

drop_whitespace: elimina os espaços em branco à esquerda e à direita das linhas.

initial_indent: anexa uma string à primeira linha de saída encapsulada de um texto.

subsequent_indent: anexa uma string a todas as linhas, exceto a primeira.

No exemplo abaixo, usamos width, initial_indent e subsequent_indent para modificar uma string:

				
					from textwrap import TextWrapper
minha_string = "Influenciou grandes nomes das letras, como Olavo Bilac, Lima Barreto, Drummond de Andrade, John Barth, Donald Barthelme e muitos outros. Ainda em vida, alcançou fama e prestígio pelo Brasil e países vizinhos."

wrapper = TextWrapper(width=50, initial_indent='*** ', subsequent_indent='??  ')
nova_string = wrapper.fill(minha_string)
print(nova_string)

# resultado

# *** Influenciou grandes nomes das letras, como
# ??  Olavo Bilac, Lima Barreto, Drummond de
# ??  Andrade, John Barth, Donald Barthelme e muitos
# ??  outros. Ainda em vida, alcançou fama e
# ??  prestígio pelo Brasil e países vizinhos.
				
			

Para conhecer mais sobre o módulo textwrap, consulte a documentação oficial do Python.

Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.

Imagem com IA Generativa – Dia 199

IA generativa img 199

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial