Escritura y lectura de Archivos con Python
La función incorporada open() toma como argumento la ruta de un archivo y retorna una instancia del tipo file .
Escritura de Archivos
Como segundo parámetro debemos indicar el modo de apertura del archivo.
Comenzaremos ingresando w , para seleccionar el modo write de escritura. Al seleccionar este modo si el archivo no exite es creado.
Para escribir en él se emplea el método write().
Por último debemos cerrar el archivo mediante el método close()
archivo =open
("prueba.txt"
,"w"
) archivo.write("Hola"
+"n"
) archivo.close()
Como resultado comprobaremos que se creo el archivo prueba.txt en el mismo directorio donde hemos guardado el archivo con el código Python que estamos ejecutando. El mismo tendrá como contenido:
Hola
Para agregar más líneas al final del archivo anterior, sin borrar información previa, ingresaremos a para seleccionar el modo append.
archivo =open
("prueba.txt"
,"a"
) archivo.write("Chau"
+"n"
) archivo.write("Adios"
+"n"
) archivo.close()
El codigo guardará en archivo las nuevas lineas, quedando:
Hola
Chau
Adios
Para agregar más de una línea al mismo tiempo podermos utilizar una lista y el método writelines().
archivo =open
("prueba.txt"
,"a"
) lista = ['Byen'
,'Au Revoirn'
] archivo.writelines(lista) archivo.close()
Agregará al archivo las líneas:
Bye
Au Revoir
Lectura de archivos
Para leer los archivos selecionaremos el modo read, por lo que ingresaremos la letra r como parametro.
archivo =open
("prueba.txt"
,"r"
) saludo =archivo.read()
Se mostrará en consola el siguiente resultado:
Hola
Chau
Adios
Bye
Au Revoir
El método readline() posibilita la lectura de una sola línea en el archivo.
archivo =open
("prueba.txt"
,"r"
) linea=archivo.readline()
Nos mostrará en consola la primer linea:
HolaUtilizado un bucle while podríamos iterar de la siguiente forma para muestre línea por línea.
archivo =open
("prueba.txt"
,"r"
) linea=archivo.readline()while
linea != '':
O podemos utilizar bucle for con el método readlines().
archivo =open
("prueba.txt"
, "r")for
lineain
archivo.readlines():
En ambos casos se mostrará en consola línea por línea :
Hola
Chau
Adios
Bye
Au Revoir
Posiblemente necesitemos enumerar los resultados. Una forma sería:
archivo =open
("prueba.txt"
,"r") contador = 1for
lineain
archivo:
Que mostrará:
1: Hola
2: Chau
3: Adios
4: Bye
5: Au Revoir
Se puede realizar de forma más reducida utilizando la función enumerate().
archivo =open
(open
("prueba.txt"
,"r"
) for contador, linea in enumerate(archivo,1):
Nota: Para leer, escribir y añadir contenido de un archivo en formato binario, deben utilizarse los modos "rb" , "wb" y "ab" , respectivamente.
Este y otros contenidos los podés aprender en el Curso de Python