Cómo crear, mover y eliminar archivos en Python

El manejo de archivos es una habilidad básica y fundamental para cualquier programador. Se usan muy comúnmente para almacenar datos de aplicaciones, configuraciones de usuarios, videos, i...

Introducción

El manejo de archivos es una habilidad básica y fundamental para cualquier programador. Se usan muy comúnmente para almacenar datos de aplicaciones, configuraciones de usuarios, videos, imágenes, etc. Hay una innumerable cantidad de casos de uso para archivos en aplicaciones de software, por lo que sería inteligente familiarizarse profundamente con el tareas de manipulación de archivos. Estas tareas podrían incluir (entre otras) crear, eliminar y mover archivos.

En este artículo, cubriremos el proceso de trabajar con archivos utilizando el lenguaje de programación Python. Los métodos integrados que ofrece facilitan mucho el manejo de archivos utilizando una cantidad de código relativamente pequeña. Al igual que con cualquier cosa en la programación, hay muchas formas de lograr el mismo objetivo cuando se trata de archivos, pero en este artículo nos ceñiremos a lo básico y mostraremos las formas más comunes de realizar estas acciones.

Creación de archivos en Python

Modos de apertura de archivos

Hay modos en los que puede abrir un archivo en Python. El modo que elija depende de cómo planea usar el archivo o qué tipo de datos leerá (escribirá) desde (hacia) el archivo. Este modo se especifica cuando se abre un archivo utilizando el método integrado open(), que se explica con más detalle en la siguiente sección.

Echemos un vistazo a algunas de las posibles combinaciones de modos de archivo:

  • w: abre un archivo para escritura y crea un nuevo archivo si aún no existe. En el caso de que el archivo exista, lo sobrescribe.
  • w+: Abre un archivo para escribir pero también para leerlo y crearlo si no existe. Si ya existe un archivo, lo sobrescribe.
  • r: Abre un archivo solo para lectura.
  • rb: Abre un archivo para lectura en formato Binario.
  • wb: Abre un archivo para escribir en formato Binario.
  • wb+: Abre un archivo para escribir y leer en formato Binario.
  • a: abre un archivo para agregarlo al final del archivo.
  • +: en general, este carácter se usa junto con r, w o a y significa tanto escritura como lectura.

Si no se especifica ningún modo de archivo, se asumirá r por defecto.

Al elegir un modo, tenga en cuenta cuál es su caso de uso y para qué se utilizará todo el archivo durante el tiempo que esté abierto.

abierto()

Como casi todo en Python, realizar muchas tareas relacionadas con archivos es muy simple. Por ejemplo, la creación de un archivo en Python se puede hacer en una sola línea de código:

1
myFile = open("new.txt", "w+")

En el ejemplo anterior hemos abierto un archivo, "nuevo.txt" para lectura y escritura. En nuestro caso, dado que el archivo aún no existe, se crea automáticamente.

El método open() acepta muchos argumentos, aunque la mayoría de las veces solo usarás estos dos:

  • nombre de archivo – Campo obligatorio para especificar el nombre del archivo que deseamos abrir/crear. En nuestro ejemplo, "nuevo.txt"
  • modo – Argumento opcional para especificar el modo de apertura del archivo, en nuestro ejemplo "w+"

Puede omitir el segundo argumento, en cuyo caso Python lo asumirá como r.

Los otros argumentos que no se enumeran aquí le permiten configurar almacenamiento en búfer, codificaciones, manejo de nueva línea, etc. Para obtener más información sobre estos argumentos, consulte la [documentación oficial de Python] (https://docs.python.org/3.3/library/ functions.html#open) en el método open.

cerca()

Cuando abre un archivo, siempre debe asegurarse de cerrarlo también. Esto se puede hacer usando el método close() del objeto de archivo, o abriéndolo usando la palabra clave with que proporciona Python, que lo cierra automáticamente cuando está fuera del alcance. Después de cerrar el archivo, ya no estará disponible para leer o escribir dentro de su código, a menos que lo vuelva a abrir.

Mantener sus archivos abiertos consumirá recursos del sistema, ralentizará su programa y, en algunos casos, evitará que otro código use el archivo. La recolección de basura de Python es mejor para cerrar automáticamente los archivos cuando ya no se usan, pero no debe confiar en ella.

Si un archivo ya está cerrado, volver a llamar a close() no lo afectará en absoluto:

1
2
myFile.close()
myFile.close() # Doesn't affect the file

Mover archivos en Python

Para mover un archivo en Python, necesitaremos importar los módulos os y shutil que nos brindan la capacidad de copiar, mover y eliminar archivos en Python. Ambos módulos proporcionan métodos para hacerlo, aunque en muchos casos el módulo shutil tiene métodos más convenientes.

1
2
3
4
5
6
7
8
import os
import shutil

# Move a file by renaming it's path
os.rename('/Users/billy/d1/xfile.txt', '/Users/billy/d2/xfile.txt')

# Move a file from the directory d1 to d2
shutil.move('/Users/billy/d1/xfile.txt', '/Users/billy/d2/xfile.txt')

Tenga en cuenta que el directorio de destino debe existir para que este ejemplo funcione. Una vez que haya configurado los directorios "d1" y "d2" (o simplemente haya cambiado el ejemplo para que se ajuste a la estructura de su directorio), ejecute el código. Ahora revise el directorio "d2" y debería ver el xfile.txt si ahora está presente en ese directorio.

Bastante simple, ¿verdad?

Eliminación de archivos en Python

Como probablemente hayas adivinado, es bastante fácil eliminar un archivo en Python usando el método remove() del módulo os.

En nuestro ejemplo a continuación, eliminaremos "xfile.txt". Todo lo que tenemos que hacer es llamar al método remove() con la ruta del archivo que queremos eliminar:

1
2
3
4
import os

# Delete xfile.txt
os.remove('/Users/billy/d2/xfile.txt')

Ahora revise el directorio "d2" nuevamente y el archivo xfile.txt ahora estará listo. ¡Simple como eso!

Conclusión

En este artículo, mostramos ejemplos muy simples de cómo crear, mover y eliminar archivos en Python usando funciones integradas como open(), shutil.move() y os.remove() . Además, presentamos una sencilla introducción y explicación de los modos de archivo de Python.

Licensed under CC BY-NC-SA 4.0