Проверить целостность архива.zip / пути к файлам / методы сжатия от python?
Мне нужно проверить, соответствует ли виджет, который в основном является.zip, следующим правилам соответствия:
http://www.w3.org/TR/widgets/
Так что мне нужно, чтобы иметь возможность проверить в этом архиве:
- Методы сжатия;
- Версия Zip, необходимая для извлечения записи в файле;
- Относительные пути Zip (длина пути, кодировка символов, имена файлов)
Каков подход к этому из python (какую библиотеку использовать, какой-нибудь минимальный пример кода поможет)?
1 ответ
Решение
Вы должны использовать zipfile
lib - попробуйте это http://bip.weizmann.ac.il/course/python/PyMOTW/PyMOTW/docs/zipfile/index.html:
Чтобы проверить, является ли файл zip-файлом:
import zipfile
for filename in [ 'README.txt', 'example.zip',
'bad_example.zip', 'notthere.zip' ]:
print '%20s %s' % (filename, zipfile.is_zipfile(filename))
И чтобы получить доступ к информации о zip-файле:
import datetime
import zipfile
def print_info(archive_name):
zf = zipfile.ZipFile(archive_name)
for info in zf.infolist():
print info.filename
print '\tComment:\t', info.comment
print '\tModified:\t', datetime.datetime(*info.date_time)
print '\tSystem:\t\t', info.create_system, '(0 = Windows, 3 = Unix)'
print '\tZIP version:\t', info.create_version
print '\tCompressed:\t', info.compress_size, 'bytes'
print '\tUncompressed:\t', info.file_size, 'bytes'
print
if __name__ == '__main__':
print_info('example.zip')