from zipfile import ZipFile def human_read_format(size): if size < 1024: return f"{size}Б" elif size < 1024 * 1024: return f"{round(size / 1024)}КБ" elif size < 1024 * 1024 * 1024: return f"{round(size / (1024 * 1024))}МБ" elif size < 1024 * 1024 * 1024 * 1024: return f"{round(size / (1024 * 1024 * 1024))}ГБ" with ZipFile('input.zip') as myzip: for i, j in enumerate(myzip.filelist): items = myzip.namelist()[i].rstrip("/").split("/") if myzip.namelist()[i][-1] == "/": print(" " * (len(items) - 1) + items[-1]) else: print(f'{" " * (len(items) - 1) + items[-1]} {human_read_format(j.file_size)}')