Современный Python (3.6+), использующий модуль pathlib
для краткой ООП-подобной обработки путей, и pathlib.Path.rglob()
для рекурсивного сглаживания. Насколько я могу судить, это эквивалентно ответу Джорджа В. Рейли: сжатие сжато, самый верхний элемент - это каталог, содержит пустые каталоги, использует относительные пути.
from pathlib import Path
from zipfile import ZIP_DEFLATED, ZipFile
from os import PathLike
from typing import Union
def zip_dir(zip_name: str, source_dir: Union[str, PathLike]):
src_path = Path(source_dir).expanduser().resolve(strict=True)
with ZipFile(zip_name, 'w', ZIP_DEFLATED) as zf:
for file in src_path.rglob('*'):
zf.write(file, file.relative_to(src_path.parent))
Примечание: как указывают необязательные подсказки типа, zip_name
не может быть объектом Path ( будет исправлено в 3.6.2+ ).
Вы можете загрузиться в режиме восстановления, нажав Shift за экраном BIOS. Оттуда вы можете получить приглашение root и оттуда вы можете изменить пароль с помощью команды:
passwd iveralvik