用python自动解压缩密码保护的rar文件

问题描述 投票:1回答:1

最近开始学习python,出现了一个问题...。我需要解压缩受密码保护的rar文件,但密码是用档案名称中的文件名写的。如此〜300次。如何,在什么地方以及在什么地方实施?例如,有一个归档文件383442389.rar,它有两个文件,pass-1337643656.data(名称包含归档文件密码)和以下归档文件)

python rar
1个回答
0
投票

我不确定您所提问题的全部背景,但我会尽力回答您。

  1. 您说过需要解压缩.rar文件,但这是不可能的,如果文件是.rar,则需要解压缩

    ] >>
  2. 我只需要解压缩一个.zip

  3. 类似的东西应该起作用

from zipfile import ZipFile
with ZipFile('test1.zip', 'r') as myzip:
    myzip.extractall(pwd='<password>')
  1. 如果是.rar,则>

pip install rarfile(仅在python 3中安装)

from rarfile import RarFile
with RarFile('test2.rar', 'r') as myrar:
    myrar.extractall(pwd='<password>')
  1. 您提到密码以文件名的形式出现在.rar中
    • pass-1337643656.data
    • 您可以使用以下方式列出文件名

RarFile.namelist()按名称返回存档成员列表。

所以您可以使用split提取密码

s = 'pass-1337643656.data'
s.split('-')[1].split('.')[0]
print(s)

'1337643656'

您还可以使用正则表达式来提取它

结论

使用.rar的完整解决方案是

from rarfile import RarFile
with RarFile('test2.rar', 'r') as myrar:
    file_names = myrar.namelist()
    pass_file = list(filter(lambda k: 'pass' in k, l))[0]
    pass = pass_file..split('-')[1].split('.')[0]
    myrar.extractall(pwd=pass)

参考

© www.soinside.com 2019 - 2024. All rights reserved.