2012-05-22 20 views
38

Estoy tratando de eliminar todos los espacios/pestañas/nuevas líneas en Python 2.7 en Linux.Strip espacios/pestañas/líneas nuevas - python

escribí esto, que debe 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 

de salida:

I want to Remove all white spaces, new lines 
and tabs 

Parece como una cosa simple de hacer, sin embargo, yo estoy aquí falta algo. ¿Debería estar importando algo?

+2

No, no debería. –

+1

podría ser útil: http://stackoverflow.com/questions/8928557/python-splitting-string-by-all-space-characters – newtover

+1

Esto funcionó para mí, de la siguiente manera: [Cómo recortar el espacio en blanco (incluidas las pestañas)?] [1] s = s.strip ('\ t \ n \ r') [1]: http://stackoverflow.com/questions/1185524/how-to-trim-whitespace- incluyendo-pestañas – stamat

Respuesta

25

Si desea eliminar varios elementos, espacios en blanco y reemplazarlos con espacios individuales, la manera más fácil es con una expresión regular como esto:

>>> 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 ' 

A continuación, puede quitar el espacio final con .strip() si quieres.

73

Uso str.split([sep[, maxsplit]]) sin sep o sep=None:

De docs:

Si sep no se especifica o es None, un algoritmo de división diferente es aplicados: carreras de los espacios consecutivos se considera como una solo separador , y el resultado no contendrá cadenas vacías al inicio o finalizará si la cadena tiene espacios en blanco iniciales o finales.

Demostración:

>>> myString.split() 
['I', 'want', 'to', 'Remove', 'all', 'white', 'spaces,', 'new', 'lines', 'and', 'tabs'] 

Uso str.join en la lista devuelta para obtener este resultado:

>>> ' '.join(myString.split()) 
'I want to Remove all white spaces, new lines and tabs' 
10
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 
+1

esto también elimina ';' – jan

1

Esto sólo eliminará los tabuladores, nuevas líneas, 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]*", "", mystr) 

SALIDA:

IwaoRemoveallwhiespaces, ewliesadabs

Buenos días!

1

utilizar la salida re biblioteca

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 

:

IwanttoRemoveallwhitespaces, newlinesandtabs

Cuestiones relacionadas