如何在python中获得密码保护rar文件提取的百分比?

时间:2013-09-17 17:04:21

标签: python python-2.6

我有这样的代码

        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()

我想显示基于GUI应用程序中文件的rar文件提取百分比。如果rar文件没有使用password加密,则此代码正常工作。如果rar文件受密码保护。 rar.namelist()函数总是为空列表。如何获取密码加密的rar文件中的所有文件名? 如何在python中获得密码保护rar文件提取的百分比?

1 个答案:

答案 0 :(得分:2)

查看docs,您似乎应该使用setpassword为其提供密码。

示例:

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

# Rest of code here

如果您不知道密码,则无法解压缩文件。所以在这种情况下,我并没有真正看到进度条中的重点。