Textwrap: ajuste y relleno de texto en Python

El módulo de ajuste de texto se puede utilizar para ajustar y formatear texto sin formato. Este módulo proporciona formato de texto ajustando los saltos de línea en el párrafo de entrada.

Los atributos de instancia de TextWrapper (y los argumentos de palabra clave para el constructor) son los siguientes:

  • ancho: Esto se refiere a la longitud máxima permitida de las líneas envueltas. Su valor predeterminado se establece en 70.
  • expand_tabs: su valor predeterminado es VERDADERO. Si el valor es igual a verdadero, todos los caracteres de tabulación en la entrada de muestra se expanden a espacios usando este método.
  • tamaño de tabulación: su valor predeterminado se establece en 8. Este método expande todos los caracteres de tabulación en el texto a cero o más espacios, según la columna actual y el tamaño de tabulación dado, si el valor de expand_tabs es VERDADERO.
  • replace_whitespace: su valor predeterminado se establece en VERDADERO. Si el valor es verdadero, después de la expansión del tabulador pero antes del ajuste, el método wrap() reemplaza cada carácter de espacio en blanco con un solo espacio. Estos caracteres de espacio en blanco se reemplazan: tabulador, nueva línea, tabulador vertical, salto de página y retorno de carro (‘\t\ n\v\f\r’).
  • drop_whitespace: su valor predeterminado se establece en VERDADERO. Los espacios en blanco al principio y al final de cada línea (después del ajuste pero antes de la sangría) se eliminan si el valor se establece en VERDADERO.
  • initial_indent: su valor predeterminado se establece en ‘ ‘. Este método antepone la string dada a la primera línea de la salida envuelta.
  • subsiguiente_indent: su valor predeterminado se establece en ‘ ‘. Este método antepone la string dada a todas las líneas de salida envuelta excepto la primera.
  • marcador de posición: su valor predeterminado se establece en ‘ […]’. Este método agrega la string al final del texto de salida si se ha truncado.
  • max_lines: su valor predeterminado se establece en Ninguno. Si el valor no es Ninguno, el texto de salida contiene como máximo líneas max_lines, con un marcador de posición al final de la salida.
  • break_long_words: su valor predeterminado se establece en True. Si es VERDADERO, las palabras más largas que el ancho se dividen para ajustarse a cada línea en el ancho dado. Si es FALSO, las palabras largas no se romperán y se pondrán en una sola línea, para minimizar la cantidad en la que se excede el ancho.
  • break_on_hyphens: su valor predeterminado se establece en True. Si el valor es igual a TRUE, el ajuste se produce en los espacios en blanco y justo después de los guiones en las palabras compuestas. Si el valor es FALSO, los saltos de línea solo se producen en los espacios en blanco, pero debe establecer break_long_words en FALSO si desea palabras verdaderamente inseparables.

Funciones proporcionadas por el módulo Textwrap:

  1. textwrap.wrap(text, width=70, **kwargs) : Esta función envuelve el párrafo de entrada de modo que cada línea del párrafo tenga como máximo caracteres de ancho. El método wrap devuelve una lista de líneas de salida. La lista devuelta está vacía si la salida envuelta no tiene contenido. El ancho predeterminado se toma como 70.

    import textwrap
      
    value = """This function wraps the input paragraph such that each line
    in the paragraph is at most width characters long. The wrap method
    returns a list of output lines. The returned list
    is empty if the wrapped
    output has no content."""
      
    # Wrap this text.
    wrapper = textwrap.TextWrapper(width=50)
      
    word_list = wrapper.wrap(text=value)
      
    # Print each line.
    for element in word_list:
        print(element)

    Producción :

    This function wraps the input paragraph such that
    each line in the paragraph is at most width
    characters long. The wrap method returns a list of
    output lines. The returned list is empty if the
    wrapped output has no content.
    
  2. textwrap.fill(text, width=70, **kwargs): la función de conveniencia fill() funciona de manera similar a textwrap.wrap, excepto que devuelve los datos unidos en una única string separada por saltos de línea. Esta función envuelve el párrafo único de entrada en texto y devuelve una sola string que contiene el párrafo envuelto.

    import textwrap
      
    value = """This function returns the answer as STRING and not LIST."""
      
    # Wrap this text.
    wrapper = textwrap.TextWrapper(width=50)
      
    string = wrapper.fill(text=value)
      
    print (string)

    Producción :

    This function returns the answer as STRING and not LIST.
    
  3. textwrap.dedent(text) : esta función se usa para eliminar cualquier espacio en blanco inicial común de cada línea en el texto de entrada. Esto permite usar docstrings o strings de varias líneas incrustadas alineadas con el borde izquierdo de la pantalla, mientras se elimina el formato del código en sí.

    Ejemplo :

    import textwrap
      
    wrapper = textwrap.TextWrapper(width=50)
      
    s = '''\
        hello
          world
        '''
    print(repr(s)) # prints '    hello\n      world\n    '
      
    text = textwrap.dedent(s)
    print(repr(text)) # prints 'hello\n  world\n'

    Producción :

    '    hello\n      world\n    '
    'hello\n  world\n'
    
  4. textwrap.shorten(text, width, **kwargs) : esta función trunca la string de entrada para que la longitud de la string sea igual al ancho dado. Al principio, todos los espacios en blanco se colapsan en la string al eliminar los espacios en blanco con un solo espacio. Si la string modificada cabe en la string dada, entonces se devuelve; de ​​lo contrario, los caracteres del final se eliminan para que las palabras restantes más el marcador de posición quepan dentro del ancho.

    import textwrap
      
    sample_text = """This function wraps the input paragraph such that each line
    n the paragraph is at most width characters long. The wrap method
    returns a list of output lines. The returned list
    is empty if the wrapped
    output has no content."""
      
    wrapper = textwrap.TextWrapper(width=50)
      
    dedented_text = textwrap.dedent(text=sample_text)
    original = wrapper.fill(text=dedented_text)
      
    print('Original:\n')
    print(original)
      
    shortened = textwrap.shorten(text=original, width=100)
    shortened_wrapped = wrapper.fill(text=shortened)
      
    print('\nShortened:\n')
    print(shortened_wrapped)

    Producción :

    Original:
    
    This function wraps the input paragraph such that
    each line n the paragraph is at most width
    characters long. The wrap method returns a list of
    output lines. The returned list is empty if the
    wrapped output has no content.
    
    Shortened:
    
    This function wraps the input paragraph such that
    each line n the paragraph is at most width [...]
    
  5. textwrap.indent(text, prefix, predicate=None) : Esta función se usa para agregar el prefijo dado al comienzo de las líneas seleccionadas del texto. El argumento del predicado se puede usar para controlar qué líneas están sangradas.

    import textwrap
      
    s = 'hello\n\n \nworld'
    s1 = textwrap.indent(text=s, prefix=' ')
      
    print (s1)
    print ("\n")
      
    s2 = textwrap.indent(text=s, prefix='+ ', predicate=lambda line: True)
    print (s2)

    Producción :

    hello
    
     
    world
    
    
    + hello
    + 
    +  
    + world
    
  6. Este artículo es una contribución de Aditi Gupta . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

    Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *