¿Cómo recorto los espacios en blanco?

Resuelto Chris asked hace 15 años • 15 respuestas

¿Existe una función de Python que recorte los espacios en blanco (espacios y tabulaciones) de una cadena?

Entonces esa entrada dada " \t example string\t "se convierte en "example string".

Chris avatar Jul 27 '09 03:07 Chris
Aceptado

Para espacios en blanco en ambos lados, use str.strip:

s = "  \t a string example\t  "
s = s.strip()

Para espacios en blanco en el lado derecho, use str.rstrip:

s = s.rstrip()

Para espacios en blanco en el lado izquierdo, use str.lstrip:

s = s.lstrip()

Puede proporcionar un argumento para eliminar caracteres arbitrarios de cualquiera de estas funciones, como este:

s = s.strip(' \t\n\r')

Esto eliminará cualquier espacio, \t, \no \rcarácter de ambos lados de la cadena.

Los ejemplos anteriores solo eliminan cadenas de los lados izquierdo y derecho de las cadenas. Si también desea eliminar caracteres del medio de una cadena, intente re.sub:

import re
print(re.sub('[\s+]', '', s))

Eso debería imprimirse:

astringexample
James Thompson avatar Jul 26 '2009 20:07 James Thompson

En Python, los métodos de recorte se denominan strip:

str.strip()  # trim
str.lstrip()  # left trim
str.rstrip()  # right trim
gcb avatar Feb 17 '2012 10:02 gcb

Para espacios en blanco iniciales y finales:

s = '   foo    \t   '
print s.strip() # prints "foo"

De lo contrario, funciona una expresión regular:

import re
pat = re.compile(r'\s+')
s = '  \t  foo   \t   bar \t  '
print pat.sub('', s) # prints "foobar"
ars avatar Jul 26 '2009 20:07 ars

También puedes usar una función muy simple y básica: str.replace() , funciona con los espacios en blanco y las pestañas:

>>> whitespaces = "   abcd ef gh ijkl       "
>>> tabs = "        abcde       fgh        ijkl"

>>> print whitespaces.replace(" ", "")
abcdefghijkl
>>> print tabs.replace(" ", "")
abcdefghijkl

Simple y fácil.

Lucas avatar Jun 11 '2014 14:06 Lucas