2

我有这样的代码

        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 文件未使用密码加密,则此代码工作正常。如果 rar 文件受密码保护。rar.namelist()函数总是给出空列表。如何获取密码加密的rar文件中的所有文件名?如何在 python 中获取受密码保护的 rar 文件提取的百分比?

4

1 回答 1

2

查看文档,您似乎应该使用setpassword它来给它密码。

例子:

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

# Rest of code here

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

于 2013-09-17T17:27:18.440 回答