Tratando de averiguar cómo escribir un ciclo if para comprobar si una línea está vacía.
El archivo tiene muchas cadenas, y una de ellas es una línea en blanco para separar de las otras declaraciones (no una ""
; es un retorno de carro seguido de otro retorno de carro, creo)
new statement
asdasdasd
asdasdasdasd
new statement
asdasdasdasd
asdasdasdasd
Dado que estoy usando el módulo de entrada de archivos, ¿hay alguna manera de verificar si una línea está vacía?
Usar este código parece funcionar, ¡gracias a todos!
for line in x:
if line == '\n':
print "found an end of line"
x.close()
if line in ['\n']
, debe reemplazarlo conif line == '\n'
.os.linesep
lugar de['\n', '\r\n']
?Utilizo el siguiente código para probar la línea vacía con o sin espacios en blanco.
if len(line.strip()) == 0 : # do something with empty line
fuente
line.strip() == ''
O, si no quiere "comerse" las líneas que constan de espacios:
line in ('\n', '\r\n')
fuente
\r\n
tener en cuenta los finales de línea al estilo de Windows (CRLF)\n
, entoncesline == '\n'
es mejor. Probablemente debería intentarlo de nuevo y averiguar cuál era su problema.\r\n
si no está usandomode='rU'
(2) Obtenga una pista:print repr(line)
y si eso no proporciona una pista, díganos exactamente qué "no funciona" significa para ti.Debe abrir los archivos de texto
rU
para que las nuevas líneas se transformen correctamente, consulte http://docs.python.org/library/functions.html#open . De esta manera, no es necesario verificar\r\n
.fuente
U
argumento no es compatible con python3.Creo que es más robusto usar expresiones regulares:
import re for i, line in enumerate(content): print line if not (re.match('\r?\n', line)) else pass
Esto coincidiría en Windows / unix. Además, si no está seguro de las líneas que contienen solo caracteres espaciales, puede usarlas
'\s*\r?\n'
como expresiónfuente