Мой вопрос является следствием этого one. Я хотел бы знать, как я могу изменить следующий код, чтобы я мог назначить уровень сжатия:Python: присвоить уровень сжатия tarfile
import os
import tarfile
home = '//global//scratch//chamar//parsed_data//batch0'
backup_dir = '//global//scratch//chamar//parsed_data//'
home_dirs = [ name for name in os.listdir(home) if os.path.isdir(os.path.join(home, name)) ]
for directory in home_dirs:
full_dir = os.path.join(home, directory)
tar = tarfile.open(os.path.join(backup_dir, directory+'.tar.gz'), 'w:gz')
tar.add(full_dir, arcname=directory)
tar.close()
В принципе, то, что делает этот код является то, что цикл я через каждый каталог в batch0
и сжать каждый каталог (где в каждом каталоге есть 6000+ файлов) и создать сжатый файл tar.gz
для каждого каталога в //global//scratch//chamar//parsed_data//
. Я думаю, что по умолчанию уровень сжатия = 9, но для сжатия требуется много времени. Мне не нужно много сжатия. Уровень 5 будет достаточным. Как я могу изменить приведенный выше код, чтобы включить уровень сжатия?
спасибо за помощь, но я получаю следующее сообщение об ошибке 'AttributeError:«модуль»объект не имеет атрибута«gzopen'' – Plug4
Я также добавил, 'Импорт gzip' но та же ошибка – Plug4
какая у вас версия python? –