Проверить целостность архива.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')
Другие вопросы по тегам