Есть сервер без доступа в интернет, с древней ОС и мёртвыми репозиториями. Нужно распаковать ZIP-архив, но unzip отсутствует, а установить его неоткуда.
Решаем вопрос штатным модулем Python zipfile, без дополнительных зависимостей.
Python 2.7:
python - <<'EOF'
import zipfile
import os
archive = 'archive.zip'
target_dir = 'archive'
if not os.path.exists(target_dir):
os.makedirs(target_dir)
with zipfile.ZipFile(archive, 'r') as z:
for name in z.namelist():
z.extract(name, target_dir)
EOFPython 3:
python3 -m zipfile -e archive.zip archiveДля Python 3 достаточно встроенного интерфейса командной строки модуля zipfile. Никаких дополнительных пакетов.
В обоих случаях архив распаковывается в каталог archive. Для Python 3 каталог назначения должен существовать заранее, поэтому при необходимости сначала выполните mkdir -p archive.