Кодировка zipfile python

имеется вот такой код(ниже) он читает зип файл с кодировкой cp437, мне нужно реализовать так, чтобы код читал и с кодировкой cp866, допустим:

если файл с кодировкой cp437 выполняется данный отрывок

def unpack_zipfile(filename, extract_dir, encoding='cp437'):
        with zipfile.ZipFile(filename) as archive:
            for entry in archive.infolist():
                name = entry.filename.encode('cp437').decode(encoding)  # reencode!!!

                 #don't extract absolute paths or ones with .. in them
                if name.startswith('/') or '..' in name:
                    continue

                target = os.path.join(extract_dir, *name.split('/'))
                os.makedirs(os.path.dirname(target), exist_ok=True)
                if not entry.is_dir():  # file
                    with archive.open(entry) as source, open(target, 'wb') as dest:
                        shutil.copyfileobj(source, dest)

    os.mkdir(f'{g}')


    unpack_zipfile(filename, f'{g}', encoding='cp866')

а если файл с кодировкой cp866, то выполняется тоже самое но с этой кодировкой,

как реализовать данный метод через оператор if elif


Ответы (0 шт):