is_zipfile в файле правильно определяет zip-файлы. Но при работе с файловым объектом, сгенерированным zipfile.open, это не так. Есть ли способ заставить это работать, или я должен извлечь файл во временную папку перед использованием?
import zipfile
file = open(r'c:\temp\test.xlsx', 'rb')
if zipfile.is_zipfile(file): # only works with native files, not file-like
print('Zip') # this line is executed, as expected
else:
print('Not zip')
zip = zipfile.ZipFile(open(r'c:\temp\test.zip', 'rb'))
file = zip.open('test.xlsx', 'r')
if zipfile.is_zipfile(file): # only works with native files, not file-like
print('Zip')
else:
print('Not zip') # this line is executed. WHY?
Мой вывод:
Zip
Not zip
Мой ожидаемый результат заключается в том, что оба должны тестироваться как zip-файл. Он работает для собственного файла, но не как часть zip-файла.