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 #一次性打包整个根目录。空子目录会被打包。 #Se você desejar apenas empacotar sem comprimir, altere o parâmetro "w:gz" para "w:" ou "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)) #Adicionar arquivos individualmente para empacotar, omitindo diretórios vazios não empacotados. Pode filtrar arquivos. #Se você desejar apenas empacotar sem comprimir, altere o parâmetro "w:gz" para "w:" ou "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()
Leitores interessados em mais conteúdo relacionado ao Python podem consultar as seções especiais deste site: 'Resumo de Dicas de Manipulação de Arquivos e Diretórios em Python', 'Resumo de Dicas de Manipulação de Arquivos de Texto em Python', 'Resumo de Dicas de Manipulação de URLs em Python', 'Resumo de Dicas de Manipulação de Imagens em Python', 'Tutorial de Estruturas de Dados e Algoritmos em Python', 'Resumo de Dicas de Programação de Socket em Python', 'Resumo de Dicas de Uso de Funções em Python', 'Resumo de Dicas de Manipulação de Strings em Python' e 'Tutorial Clássico de Entrada e Avançamento em Python'
Espero que o conteúdo deste artigo ajude a todos na programação de Python.
Declaração: O conteúdo deste artigo é extraído da Internet, pertence ao respectivo proprietário, é contribuído e carregado voluntariamente pelos usuários da Internet, o site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidade por eventuais responsabilidades legais. Se você encontrar conteúdo suspeito de violação de direitos autorais, por favor, envie e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @ para denunciar e forneça provas relevantes. Atingido, o site deletará imediatamente o conteúdo suspeito de violação de direitos autorais.)