Saltar al contenido

¿Qué es una frase rápida para eliminar líneas vacías de una cadena de python?

Solución:

Qué tal si:

text = os.linesep.join([s for s in text.splitlines() if s])

dónde text ¿La cadena tiene las posibles líneas extrañas?

"n".join([s for s in code.split("n") if s])

Edición 2:

text = "".join([s for s in code.splitlines(True) if s.strip("rn")])

Creo que esa es mi versión final. Debería funcionar bien incluso con finales de línea de mezcla de código. No creo que la línea con espacios deba considerarse vacía, pero si es así, en su lugar, bastará con un simple s.strip ().

LECCIÓN SOBRE ELIMINACIÓN DE LÍNEAS NUEVAS y LÍNEAS VACÍAS CON ESPACIOS

“t” es la variable con el texto. Verá una variable “s”, es una variable temporal que solo existe durante la evaluación del conjunto principal de paréntesis (olvidé el nombre de estas pequeñas cosas de Python)

Primero establezcamos la variable “t” para que tenga nuevas líneas:

>>> t="hi there here isna big linennof emptynlineneven some with spacesn       nlike thatnn    nokay now what?n"

Tenga en cuenta que hay otra forma de establecer la variable usando comillas triples

somevar="""
   asdfas
asdf

  asdf

  asdf

asdf
""""

Así es como se ve cuando lo vemos sin “imprimir”:

>>> t
'hi there here isna big linennof emptynlineneven some with spacesn       nlike thatnn    nokay now what?n' 

Para ver con nuevas líneas reales, imprímalo.

>>> print t
hi there here is
a big line

of empty
line
even some with spaces

like that


okay now what?

COMANDO ELIMINAR TODAS LAS LÍNEAS EN BLANCO (INCLUYENDO LOS ESPACIOS):

Por lo tanto, algunas líneas nuevas son solo líneas nuevas, y algunas tienen espacios para que parezcan líneas nuevas.

Si desea deshacerse de todas las líneas en blanco (si solo tienen líneas nuevas o espacios también)

>>> print "".join([s for s in t.strip().splitlines(True) if s.strip()])
hi there here is
a big line
of empty
line
even some with spaces
like that
okay now what?

O:

>>> print "".join([s for s in t.strip().splitlines(True) if s.strip("rn").strip()])
hi there here is
a big line
of empty
line
even some with spaces
like that
okay now what?

NOTA: esa tira en t.strip (). Splitline (True) se puede eliminar, por lo que solo son t.splitlines (True), pero luego su salida puede terminar con una nueva línea adicional (para que elimine la nueva línea final). La tira () en la última parte s.strip (” r n”). Strip () y s.strip () es lo que realmente elimina los espacios en nuevas líneas y nuevas líneas.

COMANDO ELIMINAR TODAS LAS LÍNEAS EN BLANCO (PERO NO LAS QUE TIENEN ESPACIOS):

Técnicamente, las líneas con espacios NO deben considerarse vacías, pero todo depende del caso de uso y de lo que intente lograr.

>>> print "".join([s for s in t.strip().splitlines(True) if s.strip("rn")])
hi there here is
a big line
of empty
line
even some with spaces

like that

okay now what?

** NOTA SOBRE ESA tira MEDIA **

Esa franja del medio, que está adjunta a la variable “t”, simplemente elimina la última línea nueva (tal como se indica en la nota anterior). Así es como se vería sin esa tira allí (observe la última línea nueva)

Con el primer ejemplo (eliminando nuevas líneas y nuevas líneas con espacios)

>>> print "".join([s for s in t.strip().splitlines(True) if s.strip("rn").strip()])
hi there here is
a big line
of empty
line
even some with spaces
like that
okay now what?
.without strip new line here (stackoverflow cant have me format it in).

Con el segundo ejemplo (solo eliminando nuevas líneas)

>>> print "".join([s for s in t.strip().splitlines(True) if s.strip("rn")])
hi there here is
a big line
of empty
line
even some with spaces

like that

okay now what?
.without strip new line here (stackoverflow cant have me format it in).

¡El fin!

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *