Trabajando con Diferentes Modos de Archivo
Desliza para mostrar el menú
Aprende a utilizar diferentes modos de archivo en Python para leer, escribir y agregar archivos con ejemplos prácticos.
Los modos de archivo en Python incluyen: 'r' para lectura, 'w' para escritura (crea/trunca), 'a' para agregar (crea si no existe), 'b' para modo binario y '+' para lectura/escritura. Selecciona el modo adecuado para evitar la pérdida de datos.
Modo de lectura
El modo de lectura ('r') abre un archivo existente solo para lectura. No es posible escribir ni modificar el archivo al usar este modo. Si el archivo no existe, Python generará un FileNotFoundError. Utiliza este modo cuando se desea acceder y leer datos de un archivo sin realizar cambios en su contenido.
123456with open("sample.txt", "w") as f: f.write("This is a sample file.\nSecond line.") with open("sample.txt", "r") as f: content = f.read() print(content)
Este código crea un archivo de texto con contenido de ejemplo y luego lee e imprime el contenido del archivo.
Modo de escritura
El modo de escritura (w) en Python abre un archivo para escritura. Utiliza el modo w cuando se desea comenzar desde cero con un archivo, ya sea creando uno nuevo o eliminando el contenido de un archivo existente para reemplazarlo. Precaución: cualquier dato existente en el archivo se perderá al abrirlo con el modo w.
1234567891011with open("write_example.txt", "w") as file: file.write("This file was created or overwritten using write mode.\n") with open("write_example.txt", "r") as file: print(file.read()) with open("write_example.txt", "w") as file: file.write("Every time you run this code, the contents are replaced.\n") with open("write_example.txt", "r") as file: print(file.read())
Este código muestra el contenido del archivo después de la primera escritura y luego después de sobrescribirlo, para que puedas ver cómo los datos anteriores se borran y se reemplazan con el nuevo contenido.
Modo de Adición
El modo de adición, especificado por el modo de archivo 'a', abre un archivo para escritura agregando nuevo contenido al final del archivo. Si el archivo no existe, se creará automáticamente. Este modo es útil cuando se desea preservar los datos existentes y simplemente añadir más información al final, como registrar nuevas entradas o actualizar registros con el tiempo. A diferencia del modo de escritura ('w'), el modo de adición nunca elimina ni sobrescribe el contenido existente.
123456789with open("append_example.txt", "w") as f: f.write("Original line\n") with open("append_example.txt", "a") as f: f.write("Appended line\n") with open("append_example.txt", "r") as f: result = f.read() print(result.strip())
Este código primero crea un archivo con contenido inicial. Luego abre el mismo archivo en modo de adición ('a') para agregar una nueva línea al final. Finalmente, lee e imprime todo el contenido del archivo para que puedas ver que los nuevos datos se añadieron al final sin eliminar ni modificar el contenido original.
Modo binario
El modo binario se utiliza cuando es necesario leer o escribir archivos como bytes en lugar de texto. Esto es esencial para trabajar con archivos no textuales, como imágenes, archivos de audio o ejecutables. Se combina 'b' con otros modos de archivo, como 'rb' para leer en modo binario o 'wb' para escribir en modo binario.
Cuando se abre un archivo en modo binario, los datos se leen y escriben exactamente como bytes sin procesar. No se realiza ninguna codificación o decodificación, por lo que se debe manejar la información como objetos bytes. Esto previene problemas que pueden surgir al leer o escribir archivos que no utilizan una codificación de texto estándar.
12345678byte_data = b"\x48\x65\x6c\x6c\x6f, binary world!" # This is 'Hello, binary world!' in bytes with open("sample_binary.bin", "wb") as f: f.write(byte_data) with open("sample_binary.bin", "rb") as f: read_bytes = f.read() print(read_bytes)
El código escribe una cadena de bytes que contiene el mensaje 'Hello, binary world!' en un archivo llamado sample_binary.bin utilizando el modo de escritura binaria ('wb'). La b en el modo asegura que el archivo se maneje como datos binarios, no como texto. Después de escribir, el archivo se abre nuevamente en modo de lectura binaria ('rb') para leer los bytes en bruto. El código luego imprime la representación legible del objeto bytes.
Modo de lectura y escritura
El modo de archivo r+ permite tanto leer como escribir en un archivo existente. Cuando se abre un archivo con r+, es posible leer su contenido, modificarlo o agregar nuevos datos en cualquier posición. Sin embargo, el archivo debe existir previamente; r+ no creará un archivo nuevo si no encuentra uno con el nombre especificado.
Este modo es útil cuando se necesita actualizar o procesar datos en un archivo sin perder el contenido existente. Cualquier operación de escritura comenzará desde la posición actual del archivo, por lo que se puede controlar exactamente dónde ocurren los cambios utilizando métodos del puntero de archivo como seek().
1234567891011121314151617# Writing initial content to the file with open("data.txt", "w") as f: f.write("First line\nSecond line\n") # Opening the file in r+ mode for reading and updating with open("data.txt", "r+") as f: # Reading and printing the original content original_content = f.read() print("Before update:\n" + original_content.strip()) # Moving file pointer to the beginning f.seek(0) # Overwriting the first line f.write("Updated first line\n") # Moving pointer to the start to read the updated content f.seek(0) updated_content = f.read() print("After update:\n" + updated_content.strip())
Esta salida demuestra que la primera línea del archivo fue sobrescrita correctamente. Usando el modo de lectura/escritura ('r+'), es posible actualizar partes específicas de un archivo, como cambiar solo la primera línea, sin borrar ni reescribir todo el archivo. Esto resulta útil para editar datos existentes mientras se conserva el resto del contenido.
Cuando se utiliza el modo 'r+', cualquier dato nuevo que se escriba sobrescribirá el contenido existente a partir de la posición actual del puntero del archivo. Si el nuevo contenido es más corto que el original, la parte sobrante de la línea anterior permanece en el archivo. Esto significa que pueden aparecer restos parciales del contenido anterior después de la nueva escritura. El archivo no se trunca automáticamente, por lo que es importante tener en cuenta que pueden persistir caracteres adicionales del contenido original más allá del final de los nuevos datos.
1. ¿Qué modo de archivo deberías usar si deseas leer un archivo de texto existente sin modificarlo?
2. ¿Qué modo de archivo se debe usar para añadir nuevos datos al final de un archivo de texto existente sin eliminar su contenido actual?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla