English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Краткое резюме методов打包 папки Python (zip, tar, tar.gz и т.д.)

Этот пример рассказывает о методах打包 папок с помощью 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
#一次性打包整个根目录。空子目录会被打包。
#Если打包时不压缩,измените параметр "w:gz" на "w:" или "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))
#Добавляйте файлы по одному для打包, не打包 пустые подкаталоги. Возможна фильтрация файлов.
#Если打包时不压缩,измените параметр "w:gz" на "w:" или "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()

Для тех, кто интересуется дополнительной информацией о Python, мы предлагаем посмотреть темы на нашем сайте: «Сборник навыков работы с файлами и каталогами в Python», «Сборник навыков работы с текстовыми файлами в Python», «Сборник навыков работы с URL в Python», «Сборник навыков работы с изображениями в Python», «Уроки данных и алгоритмов в Python», «Сборник навыков работы с Socket в Python», «Сборник навыков использования функций в Python», «Сборник навыков работы со строками в Python» и «Классические уроки ввода и продвинутого обучения Python»

Надеюсь, что изложенное в этой статье поможет вам в разработке программ на Python.

Декларация: содержимое статьи взято из Интернета, авторские права принадлежат правообладателям, материал был предоставлен пользователями Интернета в качестве добровольного вклада и загружен самостоятельно, сайт не имеет права собственности на него, не производил ручную редактуру и не несет ответственности за соответствующие юридические последствия. Если вы обнаружите материалы,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (при отправке письма замените # на @),并提供相关证据. При подтверждении факта нарушения авторских прав сайт немедленно удаляет материалы,涉嫌侵权.

Вам может понравиться