Oператор or python zipfile rarfile

Как правильно это реализовать?

archive= zipfile.ZipFile(file, 'r') or rarfile.RarFile(file,'r')

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

Автор решения: MarianD

Примените try-except:

try:
    archive = zipfile.ZipFile(file)           # 'r' не надо
except zipfile.BadZipFile:
    archive = rarfile.RarFile(file)           # 'r' не надо

— или — лучше:

try:
    archive = zipfile.ZipFile(file)           # 'r' не надо
except zipfile.BadZipFile:
    try:
        archive = rarfile.RarFile(file)       # 'r' не надо
    except rarfile.BadRarFile: 
        print("Ошибка - файл не является ни ZIP, ни RAR файлом")          
→ Ссылка