python:archivos
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| python:archivos [2022/04/07 13:40] – [Recorrer un árbol de directorios] alberto | python:archivos [2023/06/05 16:55] (actual) – [Lectura/escritura con open()] alberto | ||
|---|---|---|---|
| Línea 162: | Línea 162: | ||
| Devuelve el número de caracteres escritos. | Devuelve el número de caracteres escritos. | ||
| + | === Sentencia with === | ||
| + | Con el fin de tener un código más limpio, es común a la hora de trabajar con directorios usar la sentencia **with**, que nos permite evitar tener que estar cerrando el archivo con ' | ||
| + | Un ejemplo: | ||
| + | <code python> | ||
| + | with open(' | ||
| + | file.write(' | ||
| + | </ | ||
| ===== Guardar variables ===== | ===== Guardar variables ===== | ||
| ==== Guardar variables en archivos binarios ==== | ==== Guardar variables en archivos binarios ==== | ||
| Línea 308: | Línea 315: | ||
| </ | </ | ||
| ===== Trabajar con archivos comprimidos ZIP ===== | ===== Trabajar con archivos comprimidos ZIP ===== | ||
| + | Para trabajar con archivos comprimidos en ZIP, (extensión .zip) usaremo el módulo **zipfile**.\\ | ||
| + | La forma de trabajar es muy similar, asignando a tipos de datos ZipFile (similares a Path) el archivo comprimido con el que trabajaremos para gestionar sus datos. | ||
| + | |||
| + | ==== Leer ZIP ==== | ||
| + | Para leer archivos comprimidos en ZIP: | ||
| + | - Asignamos el archivo a una variable ZipFile con el método ZipFile del módulo zipfile.< | ||
| + | - Podemos listar el contenido con el método **namelist()**, | ||
| + | - Podemos obtener información de cualquier achivo comprimido en ZIP con el método **getinfo(// | ||
| + | spamInfo.file_size | ||
| + | spamInfo.compress_size</ | ||
| + | - Una vez hemos terminado de leer en el interior del archivo comprimido, lo cerramos con el métoo close(). <code python> | ||
| + | |||
| + | |||
| + | ==== Extraer ZIP ==== | ||
| + | Para extraer todo el contenido de un ZIP, se utiliza el método **extractall()**, | ||
| + | <code python> | ||
| + | import zipfile, os | ||
| + | from pathlib import Path | ||
| + | |||
| + | p = Path.home() | ||
| + | exampleZip = zipfile.ZipFile(p / ' | ||
| + | exampleZip.extractall() | ||
| + | exampleZip.close() | ||
| + | </ | ||
| + | |||
| + | Para extraer un archivo concreto se usa el método **extract()**, | ||
| + | <code python> | ||
| + | >>> | ||
| + | ' | ||
| + | >>> | ||
| + | ' | ||
| + | >>> | ||
| + | </ | ||
| + | ==== Crear y añadir a ZIP ==== | ||
| + | Para crear un nuevo archivo ZIP, se utiliza el método **ZipFile()**, | ||
| + | * Su primer argumento será el nombre de archivo. | ||
| + | * El segundo argumento será | ||
| + | * ' | ||
| + | * ' | ||
| + | |||
| + | Para añadir elementos (archivos y directorios) al ZIP, se usará el método **write()**: | ||
| + | * El primer argumento será un string del archivo o directorio a comprimir. | ||
| + | * El segundo argumento será el algoritmo de comprensión que se usará, por ejemplo ZIP_DEFLATED, | ||
| + | |||
| + | <code Python> | ||
| + | >>> | ||
| + | >>> | ||
| + | >>> | ||
| + | >>> | ||
| + | </ | ||
python/archivos.1649331654.txt.gz · Última modificación: por alberto
