Una vez que hemos introducido los datos en un fichero, ¿no sería estupendo volver a cargarlos en nuestro programa para utilizarlos de nuevo?
Sí. Sí es la respuesta que estás buscando.
👉 El código para cargar desde un fichero es bastante similar al de escritura. El comando es open en lugar de read, y los permisos son ligeramente diferentes.
f = open("filenames.list", "r")

👉 En este ejemplo, el permiso ‘r’ significa ‘sólo lectura’. Ahora cargamos el contenido del fichero en una variable utilizando la función read. A continuación, cerramos el fichero para liberar la RAM utilizada para almacenarlo.
f = open("filenames.list", "r")
contents = f.read()
f.close()

👉 Finalmente imprime el contenido de la variable ‘contents’ para comprobar que ha funcionado.
f = open("filenames.list", "r")
contents = f.read()
f.close()
print(contents)
Traerlo todo de golpe está bien, pero sería mucho más útil tenerlo como elementos separados para poder examinarlo más fácilmente.
👉 Para ello, utiliza la función .split() en la penúltima línea. Esto divide la cadena en una lista de elementos individuales.
f = open("nombresarchivos.list", "r")
contenido = f.read()
f.close()
contents = contents.split() #se añade la división aquí
print(contenido)

Leer todos los datos a la vez está bien, leer un elemento cada vez funciona de forma ligeramente diferente.
Utiliza la función .readline().
👉 El siguiente código lee una línea del archivo.
f = open("filenames.list","r")
contents = f.readline()
print(contents)
f.close()

Para leer más de una línea, repetimos el comando.
👉 La función strip() elimina la nueva línea por defecto de cada impresión, lo que provocaría una línea vacía entre cada línea del fichero.
f = open("filenames.list","r")
contents = f.readline().strip()
print(contents)
contents = f.readline().strip()
print(contents)
contents = f.readline().strip()
print(contents)
contents = f.readline().strip()
print(contents)
f.close()
👉 Si estás gritando ‘¡BUCLE! Usa un maldito bucle, tío!’ a la pantalla ahora mismo.
Tus deseos son órdenes.
f = open("filenames.list","r")
while True:
contents = f.readline().strip()
if contents == "":
break
#The last line in the file will be a blank
#We break the loop if the line read is a blank
print(contents)
# Moved the print after the break so it won't output the final blank line.
f.close()
*Primero, borra cualquier otro código de tu fichero main.py. Copia cada fragmento de código en main.py haciendo clic en el icono de copia en la parte superior derecha de cada cuadro de código. A continuación, pulsa run y comprueba qué errores se producen. Corrige los errores y pulsa “run” de nuevo hasta que estés libre de errores. Pulsa en “Respuesta” para comparar tu código con el correcto.
👉 ¿Qué le pasa a este código?
f = open("filenames.list","r")
while True:
contents = f.readline().strip()
print(contents)
if contents == "":
break
👉 ¿Cuál es el problema aquí?
f = open("filenames.list","r")
while True:
contents = f.readline().strip()
print(contents)
En el reto de ayer, creaste un archivo llamado high.score y almacenaste en él algunas puntuaciones altas.
Hemos añadido una versión de ese archivo a esta réplica.
Tu programa debería:
Ejemplo:
🌟Current Leader🌟
Analizando puntuaciones altas......
El líder actual es DJM 898,000