Estoy tratando de eliminar todos los espacios / tabs / nuevas líneas en Python 2.7 en Linux.
Escribí esto, que debería hacer el trabajo:
myString="I want to Remove all white \t spaces, new lines \n and tabs \t" myString = myString.strip(' \n\t') print myString
salida:
I want to Remove all white spaces, new lines and tabs
Parece una cosa simple de hacer, sin embargo, me estoy perdiendo algo aquí. ¿Debo estar importando algo?
Utilice str.split([sep[, maxsplit]])
sin sep
o sep=None
:
De los documentos :
Si
sep
no se especifica o esNone
, se aplica un algoritmo de división diferente: las ejecuciones de espacios en blanco consecutivos se consideran como un solo separador, y el resultado no contendrá cadenas vacías al principio o al final si la cadena tiene espacios en blanco iniciales o finales.
Manifestación:
>>> myString.split() ['I', 'want', 'to', 'Remove', 'all', 'white', 'spaces,', 'new', 'lines', 'and', 'tabs']
Use str.join
en la lista devuelta para obtener esta salida:
>>> ' '.join(myString.split()) 'I want to Remove all white spaces, new lines and tabs'
Si desea eliminar varios elementos de espacio en blanco y reemplazarlos por espacios individuales, la forma más sencilla es con una expresión regular como esta:
>>> import re >>> myString="I want to Remove all white \t spaces, new lines \n and tabs \t" >>> re.sub('\s+',' ',myString) 'I want to Remove all white spaces, new lines and tabs '
Luego puede eliminar el espacio final con .strip()
si lo desea.
import re mystr = "I want to Remove all white \t spaces, new lines \n and tabs \t" print re.sub(r"\W", "", mystr) Output : IwanttoRemoveallwhitespacesnewlinesandtabs
Echa un vistazo a la respuesta a esta pregunta relacionada: ¿Cómo recortar los espacios en blanco (incluidas las tabs)?
strip () elimina solo los caracteres iniciales y finales, no TODOS los caracteres.
Usa la biblioteca re
import re myString = "I want to Remove all white \t spaces, new lines \n and tabs \t" myString = re.sub(r"[\n\t\s]*", "", myString) print myString
Salida:
Quiero eliminar los espacios en blanco, nuevas líneas y lengüetas
Esto solo eliminará la pestaña, las nuevas líneas, los espacios y nada más.
import re myString = "I want to Remove all white \t spaces, new lines \n and tabs \t" output = re.sub(r"[\n\t\s]*", "", myString)
SALIDA:
IwantoRemover todos los espacios, nuevas líneas y lengüetas
¡Buen día!