A menudo necesito procesar archivos de texto grandes que contengan encabezados en la primera línea. Los encabezados a menudo se tratan de manera diferente al cuerpo del archivo, o mi procesamiento del cuerpo depende de los encabezados. De cualquier manera, necesito tratar la primera línea como un caso especial. que podría utilizar iteración simple línea y establecer un indicador:¿Cómo tratar la primera línea de un archivo de manera diferente en Python?
headerProcessed = false
for line in f:
if headerProcessed:
processBody(line)
else:
processHeader(line)
headerProcessed = true
pero no me gusta una prueba en el bucle que es redundante para todas menos una de las millones de veces que ejecuta. ¿Hay una mejor manera? ¿Podría tratar la primera línea de manera diferente y luego comenzar la iteración en la segunda línea? ¿Debería molestarme?
Gracias Greg. Esto es exactamente lo que esperaría poder hacer pero de alguna manera asumí que la posición del archivo se restablecería al inicio del ciclo for. Lección de Python aprendida: ¡Espere que el método simple funcione! –
Otra lección para aprender: prueba tus suposiciones. Podrías haberlo intentado y descubierto, ¡pero entonces no nos hubiéramos beneficiado de este interesante intercambio! – Todd
Lo anterior funciona pero, en general, puede obtener: 'ValueError: la mezcla de iteración y los métodos de lectura perderían datos'. – jfs