¿Eliminar los espacios iniciales y finales?


109

Me cuesta mucho intentar usar .strip con la siguiente línea de código.

Gracias por la ayuda.

f.write(re.split("Tech ID:|Name:|Account #:",line)[-1])

3
¿Qué es la línea? Un ejemplo sería genial o solo estamos adivinando.
Jamylak

f.write (str (re.split ("Tech ID: | Nombre: | Cuenta #:", línea) [- 1]). strip)
fpena06

1
Por el código que acaba de publicar, parece que olvidó la parántesis después de la tira
jamylak

Te perdiste la función llamada paréntesis después strip. Que desea: f.write(str(re.split("Tech ID:|Name:|Account #:",line)[-1]).strip()).
Li-aung Yip

1
¿Por qué no agrega espacios en blanco a su expresión regular: re.split(r"\s*(?:Tech ID:|Name:|Account #:)\s*etc.?
georg

Respuestas:


235

Puede utilizar la tira () para eliminar los espacios iniciales y finales.

>>> s = '   abd cde   '
>>> s.strip()
'abd cde'

Nota: los espacios internos se conservan


31
No olvide asignar la salida de s.strip () de nuevo a s si ese es su objetivo: s = s.strip ()
Seanonymous

@GregSchmit ¿Cómo podría alguien perderse eso? 78 me gusta y nadie se dio cuenta? Extraño.
MYGz

@MYGz Sí, incluso me estaba cuestionando a mí mismo, pensando que podría haberme perdido algo.
Greg Schmit

2
@GregSchmit Al parecer, 89294 ojos lo escanearon. Tienes 1 par agudo: P
MYGz

Claramente, estoy haciendo algo mal, pero no sé qué es eso. Cuando ejecuto strip () en una cadena, obtengo una lista de cadenas, no una cadena.
user1928764

5

Expande tu delineador en varias líneas. Entonces se vuelve fácil:

f.write(re.split("Tech ID:|Name:|Account #:",line)[-1])

parts = re.split("Tech ID:|Name:|Account #:",line)
wanted_part = parts[-1]
wanted_part_stripped = wanted_part.strip()
f.write(wanted_part_stripped)

3

Debe tenerse en cuenta que el strip()método recortaría los espacios en blanco iniciales y finales de la cadena (si no hay un argumento pasado). Si desea recortar los caracteres de espacio, mientras mantiene los demás (como nueva línea), esta respuesta puede ser útil:

sample = '  some string\n'
sample_modified = sample.strip(' ')

print(sample_modified)  # will print 'some string\n'

strip([chars]): Puede pasar caracteres opcionales al strip([chars])método. Python buscará apariciones de estos caracteres y recortará la cadena dada en consecuencia.


0

Archivo inicial:

     line 1
   line 2
line 3  
      line 4 

Código:

with open("filename.txt", "r") as f:
    lines = f.readlines()
    for line in lines:
        stripped = line.strip()
        print(stripped)

Salida:

line 1
line 2
line 3
line 4
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.