Para un ejercicio que estoy haciendo, intento leer el contenido de un archivo determinado dos veces usando el método read()
. Extrañamente, cuando lo llamo por segunda vez, ¿no parece devolver el contenido del archivo como una cadena?¿Por qué no puedo llamar a read() dos veces en un archivo abierto?
Aquí está el código
f = f.open()
# get the year
match = re.search(r'Popularity in (\d+)', f.read())
if match:
print match.group(1)
# get all the names
matches = re.findall(r'<td>(\d+)</td><td>(\w+)</td><td>(\w+)</td>', f.read())
if matches:
# matches is always None
Por supuesto que sé que este no es el más eficiente o mejor manera, este no es el punto aquí. El punto es, ¿por qué no puedo llamar al read()
dos veces? ¿Tengo que restablecer el manejador del archivo? ¿O cerrar/volver a abrir el archivo para hacer eso?
¿De dónde sacaste la idea de que leer no cambiaría el estado del archivo? ¿Qué referencia o tutorial estás usando? –
Creo que cerrar y volver a abrir el archivo debería funcionar en función de los valores a continuación. – Anthony
@Shynthriir: Cerrar y volver a abrir el archivo no siempre es una buena idea ya que puede tener otros efectos en el sistema (archivos temporales, incron, etc.). –