Как получить процент извлечения файла rar, защищенного паролем, в python?

у меня такой код

        rar = rarfile.RarFile(source_filename)
        files = rar.namelist()
        count_files =len(files)
        i = 0
        for f in files:
            i = i+1

            percent = int((i/float(count_files))*100)
            rar.extract(f,dest_dir,self.pwd)
            self.emit(percent)
        rar.close()

Я хочу показать процент извлечения файла rar на основе файлов в приложении с графическим интерфейсом. этот код работает нормально, если файл rar не зашифрован паролем. Если файл rar защищен паролем. Функция rar.namelist() всегда дает пустой список. Как получить все имена файлов внутри зашифрованного паролем rar-файла? Как получить процент извлечения файла rar, защищенного паролем, в python?


person open source guy    schedule 17.09.2013    source источник
comment
Используйте rarfile, который может работать с зашифрованными файлами RAR.   -  person Ignacio Vazquez-Abrams    schedule 17.09.2013
comment
@IgnacioVazquez-Abrams, не могли бы вы объяснить? я не понял тебя   -  person open source guy    schedule 17.09.2013


Ответы (1)


Глядя на документы, кажется, что вы должны использовать setpassword, чтобы дать ему пароль.

Пример:

rar = rarfile.RarFile(source_filename)
if rar.needs_password():
    rar.setpassword('') # whatever the password is

# Rest of code here

Если вы не знаете пароль, вы не можете извлечь файлы. Так что в этом случае я не вижу смысла в индикаторе выполнения.

person mr2ert    schedule 17.09.2013