2009-06-06 23 views
105

Tengo una cadena de texto que comienza con un número de espacios, que varía entre 2 & 4.¿Cómo elimino el espacio en blanco inicial en Python?

¿Cuál es la forma más sencilla de eliminar los espacios en blanco iniciales? (. Es decir, eliminar todo antes de un cierto carácter?)

" Example" -> "Example" 
" Example " -> "Example " 
" Example" -> "Example" 

Respuesta

205

El método lstrip() eliminará los espacios en blanco que llevan, caracteres de nueva línea y la lengüeta en una cadena que comienza:

>>> '  hello world!'.lstrip() 
'hello world!' 

Editar

As balpha pointed out in the comments , para eliminar espacios solo desde el comienzo de la cadena, se debe utilizar lstrip(' '):

>>> ' hello world with 2 spaces and a tab!'.lstrip(' ') 
'\thello world with 2 spaces and a tab!' 

pregunta relacionada:

+6

Tenga en cuenta, sin embargo, que mientras lstrip quitar espacios en blanco líderes * * que puede ser más que los espacios (pestañas, etc). Eso es generalmente lo que quieres. Si desea eliminar espacios y espacios solamente, llame a "bla" .lstrip ("") – balpha

+1

@balpha: ¡Gracias por señalar eso! He agregado eso a la respuesta. – coobird

+2

ha estado programando durante años y no sabía esto, salvavidas –

52

La función strip eliminará los espacios en blanco del principio y el final de una cadena.

my_str = " text " 
my_str = my_str.strip() 

establecerá my_str a "text".

+0

http://docs.python.org/library/string.html#string.strip – bernie

+1

no es exactamente la respuesta, pero es una buena adición. +1 – Glycerine

8

Para eliminar todo antes de un cierto carácter, utilice una expresión regular:

re.sub(r'^[^a]*', '') 

para eliminar todo hasta la primera 'a'. [^a] se puede reemplazar con cualquier clase de personaje que desee, como los caracteres de las palabras.

+2

Creo que el tipo pidió la "forma más fácil y simple" – Nope

+8

Es cierto, pero también (quizás sin querer) pidió la solución para un problema más general, "es decir, eliminar todo antes de cierto personaje", y esta es esa solución más general. –

6

Si desea cortar los espacios en blanco antes y después de la palabra, pero mantenga los del medio.
que puede usar:

word = ' Hello World ' 
stripped = word.strip() 
print(stripped) 
+0

Vale la pena señalar que this_does_ print ''Hello World'' con el espacio intermedio intacto, para quien se lo esté pensando, supongo que ha sido rechazado porque la pregunta original pedía específicamente eliminar _leading_ spaces. – conapart3

+0

'print' no es una función.Esos corchetes no son necesarios, pero hacen que parezca una llamada a función. –

+1

https://docs.python.org/3/whatsnew/3.0.html Imprimir es una función La instrucción print ha sido reemplazada por una función print(), con argumentos de palabra clave para reemplazar la mayoría de la sintaxis especial de la declaración de impresión antigua (PEP 3105). – mbrandeis

Cuestiones relacionadas