Artículo original: File Handling in Python – How to Create, Read, and Write to a File
En este tutorial aprenderás a abrir un archivo, escribir en él y cerrarlo. También aprenderás a leer desde el archivo usando Python. Al final de este tutorial, deberías saber lo básico de cómo usar archivos en Python.
Manejo de archivos en Python
El manejo de archivos es una actividad importante en toda aplicación web. Los tipos de actividades que se pueden realizar en un fichero abierto están controlados por los Modos de Acceso.
Estos modos describen cómo se utilizará el archivo una vez abierto y especifican dónde se ubicará el gestor de archivo dentro del mismo. Similar a un puntero, un manejador de archivo indica dónde se deben leer o poner los datos en el archivo.
En Python, hay seis métodos o modos de acceso, que son:
- Sólo lectura ('r'): Este modo abre los ficheros de texto sólo para lectura. El inicio del fichero es donde se encuentra el manejador. Se produce un error de E/S si el fichero no existe. Este es también el modo por defecto para abrir ficheros.
- Lectura y escritura ('r+'): Este método abre el fichero tanto para lectura como para escritura. Si el fichero no existe, se produce un error de E/S. Si el fichero no existe, se produce un error de E/S.
- Sólo escritura ('w'): Este modo abre el fichero sólo para escritura. Los datos de los ficheros existentes se modifican y sobrescriben. El inicio del fichero es donde se encuentra el manejador. Si el fichero no existe ya en la carpeta, se crea uno nuevo.
- Escritura y lectura ('w+'): Este modo abre el fichero tanto para lectura como para escritura. El texto se sobrescribe y se borra de un fichero existente. El inicio del fichero es donde se encuentra el manejador.
- Sólo añadir ('a'): Este modo permite abrir el fichero para escribir. Si el fichero aún no existe, se crea uno nuevo. El manejador se coloca al final del fichero. Los datos recién escritos se añadirán al final, a continuación de los datos escritos anteriormente.
- Añadir y leer ('a+'): Este método permite leer y escribir en el fichero. Si el fichero no existe, se crea uno. El manejador se coloca al final del fichero. El texto recién escrito se añadirá al final, a continuación de los datos escritos anteriormente.
A continuación se muestra el código necesario para crear, escribir y leer archivos de texto utilizando los métodos de manejo de archivos o modos de acceso de Python.
Cómo crear archivos en Python
En Python, se utiliza la función open()
con una de las siguientes opciones - "x" o "w" - para crear un nuevo archivo:
• "x" - Crear: este comando creará un nuevo archivo si y sólo si no existe ya un archivo con ese nombre o, de lo contrario, devolverá un error.
Ejemplo de creación de un archivo en Python utilizando el comando "x":
#crear un archivo de texto con la función de comando "x"
f = open("myfile.txt", "x")
Hemos creado un nuevo archivo de texto vacío. Pero si vuelve a intentar el código anterior - por ejemplo, si intenta crear un nuevo archivo con el mismo nombre que utilizó anteriormente (si desea reutilizar el nombre de archivo anterior) obtendrá un error notificándole que el archivo ya existe. Se verá como la imagen de abajo:

- "w" - Escribir: este comando creará un nuevo archivo de texto independientemente de que exista o no un archivo en la memoria con el nuevo nombre especificado. No devuelve un error si encuentra un archivo existente con el mismo nombre - en su lugar, sobrescribirá el archivo existente.
Ejemplo de cómo crear un archivo con el comando "w":
#crear un archivo de texto con la función de comando "w"
f = open("myfile.txt", "w")
#Este comando "w" también se puede utilizar para crear un nuevo archivo, pero a diferencia del comando "x", el comando "w" sobrescribirá cualquier archivo existente con el mismo nombre.
Con el código anterior, tanto si el archivo existe como si no existe en la memoria, puedes seguir adelante y usar ese código. Sólo tenga en cuenta que sobrescribirá el archivo si encuentra un archivo existente con el mismo nombre.
Cómo escribir en un archivo en Python
Existen dos métodos para escribir en un fichero en Python, que son:
El método write()
:
Esta función inserta la cadena en el archivo de texto en una sola línea.
Basándonos en el archivo que hemos creado anteriormente, la siguiente línea de código insertará la cadena en el archivo de texto creado, que es "miarchivo.txt".
file.write("Hello There\n")
El método writelines()
:
Esta función inserta múltiples cadenas al mismo tiempo. Se crea una lista de elementos de cadena y, a continuación, se añade cada cadena al archivo de texto.
Utilizando el archivo creado anteriormente, la siguiente línea de código insertará la cadena en el archivo de texto creado, que es "miarchivo.txt".
f.writelines(["Hello World ", "You are welcome to Fcc\n"])
Ejemplo:
# Este programa muestra cómo escribir datos en un fichero de texto.
file = open("myfile.txt","w")
L = ["This is Lagos \n","This is Python \n","This is Fcc \n"]
# Asigné ["Esto es Lagos \n", "Esto es Python \n", "Esto es Fcc \n"] a la # variable L, puedes usar cualquier letra o palabra de tu elección.
# Las variables son contenedores en los que se pueden almacenar valores.
# La \n se coloca para indicar el final de la línea.
file.write("Hello There \n")
file.writelines(L)
file.close()
# Usa close() para cambiar el modo de acceso a los ficheros
Cómo leer de un archivo de texto en Python
Existen tres métodos para leer datos de un archivo de texto en Python. Ellos son:
El método read()
:
Esta función devuelve los bytes leídos en forma de cadena. Si no se especifica n, lee el fichero completo.
Ejemplo:
f = open("myfiles.txt", "r")
#('r') abre los archivos de texto sólo para lectura print(f.read())
#El "f.read" imprime los datos del archivo de texto en el shell cuando se ejecuta.
El método readline()
:
Esta función lee una línea de un fichero y la devuelve como cadena. Lee como máximo n bytes para la n especificada. Pero aunque n sea mayor que la longitud de la línea, no lee más de una línea.
f = open("myfiles.txt", "r")
print(f.readline())
El método readlines()
:
Esta función lee todas las líneas y las devuelve como elementos de cadena en una lista, uno por cada línea.
Puede leer las dos primeras líneas llamando a readline() dos veces, leyendo las dos primeras líneas del fichero:
f = open("myfiles.txt", "r")
print(f.readline())
print(f.readline())
Cómo cerrar un archivo de texto en Python
Es una buena práctica cerrar siempre el archivo cuando haya terminado de utilizarlo.
Ejemplo de cierre de un archivo de texto:
Esta función cierra el fichero de texto cuando termina de modificarlo:
f = open("myfiles.txt", "r")
print(f.readline())
f.close()
La función close() al final del código le dice a Python que bien, he terminado con esta sección de creación o lectura - es como decir Fin.
Ejemplo:
El siguiente programa muestra más ejemplos de formas de leer y escribir datos en un fichero de texto. Cada línea de código tiene comentarios para ayudarle a entender lo que está pasando:
# Programa para mostrar varias formas de leer y # escribir datos en un archivo de texto.
file = open("myfile.txt","w")
L = ["This is Lagos \n","This is Python \n","This is Fcc \n"]
#i asignó ["Esto es Lagos \n", "Esto es Python \n", "Esto es Fcc \n"]
#a la variable L
#La \n se coloca para indicar Fin de Línea
file.write("Hello There \n")
file.writelines(L)
file.close()
# usa close() para cambiar el modo de acceso al fichero
file = open("myfile.txt","r+")
print("Output of the Read function is ")
print(file.read())
print()
# El seek(n) lleva el manejador del fichero al enésimo
# byte desde el inicio.
file.seek(0)
print( "The output of the Readline function is ")
print(file.readline())
print()
file.seek(0)
# Para mostrar la diferencia entre read y readline
print("Output of Read(12) function is ")
print(file.read(12))
print()
file.seek(0)
print("Output of Readline(8) function is ")
print(file.readline(8))
file.seek(0)
# función readlines
print("Output of Readlines function is ")
print(file.readlines())
print()
file.close()
Esta es la salida del código anterior cuando se ejecuta en el shell. Asigné "Esto es Lagos", "Esto es Python", y "Esto es Fcc" a "L" y luego le pedí que imprimiera usando la función ''file.read''.
El código de arriba muestra que la función "readline()" está devolviendo la letra basada en el número que se le especificó, mientras que la función "readlines()" está devolviendo cada cadena asignada a "L" incluyendo el \n. Es decir, la función "readlines()" imprimirá todos los datos del archivo.

Conclusión
Esperamos que, después de pasar por este tutorial, entiendas lo que es el manejo de archivos en Python. También aprendimos los modos/métodos necesarios para crear, escribir, leer y cerrar() un archivo de texto usando algunos ejemplos básicos de Python
¡Gracias por leer!