English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
本文实例讲述了Python打包文件夹的方法。分享给大家供大家参考,具体如下:
一、zip
import os, zipfile #打包目录为zip文件(未压缩) def make_zip(source_dir, output_filename): zipf = zipfile.ZipFile(output_filename, 'w') pre_len = len(os.path.dirname(source_dir)) for parent, dirnames, filenames in os.walk(source_dir): for filename in filenames: pathfile = os.path.join(parent, filename) arcname = pathfile[pre_len:].strip(os.path.sep) #相对路径 zipf.write(pathfile, arcname) zipf.close()
二、tar/tar.gz
import os, tarfile #一次性打包整个根目录。空子目录会被打包。 #Si solo se empaqueta sin comprimir, cambie el parámetro "w:gz" a "w:" o "w". def make_targz(output_filename, source_dir): with tarfile.open(output_filename, "w:gz") as tar: tar.add(source_dir, arcname=os.path.basename(source_dir)) #Añadir archivos uno por uno para empacar, no empacar directorios subvacos. Puede filtrar archivos. #Si solo se empaqueta sin comprimir, cambie el parámetro "w:gz" a "w:" o "w". def make_targz_one_by_one(output_filename, source_dir): tar = tarfile.open(output_filename,"w:gz") for root,dir,files in os.walk(source_dir): for file in files: pathfile = os.path.join(root, file) tar.add(pathfile) tar.close()
Los lectores interesados en más contenido relacionado con Python pueden consultar la sección especial de este sitio: "Resumen de técnicas de manejo de archivos y directorios en Python", "Resumen de técnicas de manejo de archivos de texto en Python", "Resumen de técnicas de manejo de URL en Python", "Resumen de técnicas de manejo de imágenes en Python", "Tutorial de estructuras de datos y algoritmos en Python", "Resumen de técnicas de programación de Socket en Python", "Resumen de técnicas de uso de funciones en Python", "Resumen de técnicas de manejo de cadenas en Python" y "Tutorial clásica de introducción y avanzado en Python"
Espero que lo descrito en este artículo pueda ayudar a todos a diseñar programas en Python.
Declaración: El contenido de este artículo se ha obtenido de la red, pertenece al propietario original, el contenido ha sido contribuido y subido por los usuarios de Internet de manera autónoma, este sitio no posee los derechos de propiedad, no ha sido editado por humanos y no asume la responsabilidad de las responsabilidades legales relacionadas. Si encuentra contenido sospechoso de copyright, le invitamos a enviar un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, reemplace # con @ para denunciar y proporcione evidencia. Una vez verificada, este sitio eliminará inmediatamente el contenido sospechoso de infracción.)