El sistema de archivos

La biblioteca estándar de Python incluye una amplia gama de herramientas para trabajar con archivos en el sistema de archivos, construyendo y analizando nombres de archivo, y examinando el contenido de archivos.

El primer paso para trabajar con archivos es determinar su nombre. Python representa nombres de archivos como cadenas simples, pero proporciona herramientas para construirlos desde componentes estándar, independientemente de la plataforma, en os.path.

El módulo pathlib proporciona una interfaz orientada a objetos para trabajar con rutas de sistema de archivos. Utilizándolo en lugar de os.path proporciona algunas comodidades, ya que opera en un nivel superior de abstracción.

Enumera el contenido de un directorio con listdir() de os, o usa glob para compilar una lista de nombres de archivos desde un patrón.

El patrón coincidencia de nombre de archivo utilizado por glob también es expuesto directamente a través de fnmatch para que pueda usarse en otros contextos.

Después de identificar el nombre del archivo, otras características, tales como permisos o el tamaño del archivo, se puede verificar usando os.stat() y las constantes en stat.

Cuando una aplicación necesita acceso aleatorio a archivos, linecache hace que sea fácil leer líneas por su número de línea. El contenido del archivo se mantienen en un caché, así que tén cuidado con el consumo de memoria.

tempfile es útil para los casos que necesitan crear archivos de borrador para mantener los datos temporalmente, o antes de moverlos a una ubicación permanente. Proporciona clases para crear archivos temporales y directorios de forma segura. Se garantiza que los nombres sean únicos e incluyen componentes al azar por lo que no son fáciles de adivinar.

Con frecuencia, programas necesitan trabajar en archivos en conjunto, sin tener en cuentaa su contenido. El módulo shutil incluye operaciones de alto nivel tales como copiar archivos y directorios, y crear o extraer archivos.

El módulo filecmp compara archivos y directorios mirando los bytes que contienen, pero sin ningún conocimiento especial sobre su formato.

La clase incorporada file se puede usar para leer y escribir archivos visibles en los sistemas de archivos locales. El rendimiento de un programa puede sufrir cuando accede a archivos grandes a través de las interfaces read() y write(), ya que ambas implican copiar los datos varias veces a medida que se mueven del disco a la memoria que la aplicación pueda usar. Usando mmap le dice al sistema operativo que use su subsistema virtual de memoria para mapear los contenidos de un archivo directamente en la memoria accesible por un programa, evitando un paso de copia entre el sistema operativo y el búfer interno para el objeto file.

Los datos de texto que usan caracteres que no están disponibles en ASCII generalmente se guardan enun formato de datos Unicode. Desde el mango estándar `` file``asume que cada byte de un archivo de texto representa un caracter, leyendoEl texto Unicode con codificaciones multibyte requiere un procesamiento adicional. los: mod: codecs módulo maneja la codificación y la decodificación de forma automática,de modo que, en muchos casos, un archivo que no sea ASCII se puede usar sin ningún otrocambios en el programa

Los datos de texto que usan caracteres que no están disponibles en ASCII generalmente se guardan en un formato de datos Unicode. Ya que el manejador estándar file asume que cada byte de un archivo de texto representa un caracter, leyendo texto Unicode con codificaciones multibyte requiere un procesamiento adicional. El módulo codecs maneja la codificación y la decodificación automáticamente, de modo que, en muchos casos, un archivo que no sea ASCII puede usardo sin ningún otro cambio en el programa.

El módulo io proporciona acceso a las clases utilizadas para implementar la entrada y salida basadas en archivos de Python. Para probar código que depende de leer o escribir datos de archivos, io proporciona un objeto en memoria de transmisión que se comporta como un archivo, pero no reside en el disco.