¿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])
fpena06
fuente
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

Anshuma
fuente
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)
Li-aung Yip
fuente
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.

índice_invertido
fuente
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
Joshua Hall
fuente