Mi pregunta está relacionada con la entrada de archivos en Python, usando open()
. Tengo un archivo de texto mytext.txt
con 3 líneas. Estoy tratando de hacer dos cosas con este archivo: imprimir las líneas e imprimir el número de líneas.bucle de python a través del archivo de entrada
He probado el siguiente código:
input_file = open('mytext.txt', 'r')
count_lines = 0
for line in input_file:
print line
for line in input_file:
count_lines += 1
print 'number of lines:', count_lines
Resultado: imprime las 3 líneas correctamente, pero no se imprime "número de líneas: 0" (en lugar de 3)
encontré dos formas de resolverlo, y lo consigue para imprimir 3
:
1) utilizo un bucle en lugar de dos
input_file = open('mytext.txt', 'r')
count_lines = 0
for line in input_file:
print line
count_lines += 1
print 'number of lines:', count_lines
2) después de que el primer bucle, defino archivo_entrada nuevo
input_file = open('mytext.txt', 'r')
count_lines = 0
for line in input_file:
print line
input_file = open('mytext.txt', 'r')
for line in input_file:
count_lines += 1
print 'number of lines:', count_lines
Para mí, parece que la definición input_file = ...
es válido para un solo bucle, como si se elimina después de usarlo para un bucle Pero no entiendo por qué, probablemente todavía no esté 100% claro, cómo se trató variable = open(filename)
en Python.
Por cierto, veo que en este caso es mejor usar solo un bucle. Sin embargo, creo que debo aclarar esta pregunta, ya que podría haber casos en los que pueda/deba hacer uso de ella.
Si desea procesar líneas, por qué no usar 'readlines()' – tMC
readlines harán que su máquina de movimiento de piernas y posiblemente bloquearse si de repente se lo utiliza con un archivo de gran tamaño. Por lo general, es mejor leer una línea a la vez. – user1277476
también puede usar readline(), que lee una línea a la vez. O para evitar golpear/colisionar con líneas de lectura, use el parámetro de sugerencia de tamaño opcional: líneas de lectura (sugerencia de tamaño). Esto devolverá la cantidad de líneas enteras que pueden caber en un buffer de "sugerencia de tamaño". – ncultra