TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #299 · 1 дек.

Если часто работаете с архивами, то наверняка знакомы с модулем zipfile. Нет ничего сложного добавить директорию в архив. import zipfile from pathlib import Path dir_name = '~/input_files' zip_name = '~/archive.zip' with zipfile.ZipFile(zip_name, 'w') as zip: for file in Path(dir_name).glob('**/*'): zip.write(file, file.relative_to(dir_name).as_posix()) Довольно немногословно. Но можно короче! В модуле shutil уже есть готовый метод dir_name = '~/input_files' zip_name = '~/archive' zip_file = shutil.make_archive(zip_name, 'zip', root_dir=dir_name) А что насчет распаковки? Здесь проще, даже с zipfile это одна строка zip_file = '~/archive.zip' out_dir = '~/out_dir' zipfile.ZipFile(zip_file).extractall(out_dir) Ну и тем более в shutil shutil.unpack_archive(zip_file, out_dir) В примерах не делается expanduser для краткости ▫️ В данном случае функция из shutil более универсальна, так как второй аргумент format задаёт алгоритм сжатия, от чего зависит выбор библиотеки. Если написать формат tar, то вместо zipfile будет использоваться tarfile. Поддерживаются форматы zip, tar, gztar, bztar, xztar. Но только если на текущем хосте доступны соответствующие библиотеки. ▫️ Из недостатков можно назвать невозможность запаковать просто один файл. Источником может быть только директория. Проблема легко решается, но всё же. ▫️ Интересный момент. При наличии в Python2 функции shutil.make_archive() там отсутствует shutil.unpack_archive(). А появился он только в 3.7! Не очень понятно почему, но это еще один повод переходить на Python3😊 #libs#tricks

Hashtags

Резултати

Пронајдени 0 слични објави

Пребарај: #libs

当前筛选 #libs清除筛选

Не се пронајдени слични објави.

Оваа објава нема претходно пресметани резултати на сличност.