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.
- os.path — Manipulación de nombres de archivo independiente de la plataforma
- pathlib — Rutas del sistema de archivos como objetos
- glob — Coincidencia de patrón de nombre de archivo
- fnmatch — Combinación de patrones Glob al estilo Unix
- linecache — Lectura eficiente de archivos de texto
- tempfile — Objetos temporales del sistema de archivos
- shutil — Operaciones de archivo de alto nivel
- filecmp — Comparar archivos
- mmap — Archivos de mapas de memoria
- codecs — Codificación y decodificación de cadenas
- io — Herramientas de E / S de flujo de texto, binario y en bruto