txt - guardar una lista en un archivo python
¿Cómo descomprimir el archivo en Python en todos los sistemas operativos? (2)
¿Existe una función Python simple que permita descomprimir un archivo .zip como así ?:
unzip(ZipSource, DestinationDirectory)
Necesito la solución para actuar de la misma manera en Windows, Mac y Linux: siempre genere un archivo si el archivo zip es un archivo, el directorio si el archivo zip es un directorio, y el directorio si el archivo zip contiene varios archivos; siempre dentro, no en, el directorio de destino dado
¿Cómo descomprimir un archivo en Python?
Python 3.x usa el argumento -e, no -h .. como por ejemplo:
python -m zipfile -e compressedfile.zip c:/output_folder
los argumentos son los siguientes ..
zipfile.py -l zipfile.zip # Show listing of a zipfile
zipfile.py -t zipfile.zip # Test if a zipfile is valid
zipfile.py -e zipfile.zip target # Extract zipfile into target dir
zipfile.py -c zipfile.zip src ... # Create zipfile from sources
Utilice el módulo zipfile
en la biblioteca estándar:
import zipfile,os.path
def unzip(source_filename, dest_dir):
with zipfile.ZipFile(source_filename) as zf:
for member in zf.infolist():
# Path traversal defense copied from
# http://hg.python.org/cpython/file/tip/Lib/http/server.py#l789
words = member.filename.split(''/'')
path = dest_dir
for word in words[:-1]:
while True:
drive, word = os.path.splitdrive(word)
head, word = os.path.split(word)
if not drive:
break
if word in (os.curdir, os.pardir, ''''):
continue
path = os.path.join(path, word)
zf.extract(member, path)
Tenga en cuenta que el uso de extractall
sería mucho más corto, pero ese método no protege contra las vulnerabilidades de recorrido de ruta antes de Python 2.7.4. Si puede garantizar que su código se ejecuta en versiones recientes de Python.