最近开始学习python,出现了一个问题...。我需要解压缩受密码保护的rar文件,但密码是用档案名称中的文件名写的。如此〜300次。如何,在什么地方以及在什么地方实施?例如,有一个归档文件383442389.rar,它有两个文件,pass-1337643656.data(名称包含归档文件密码)和以下归档文件)
我不确定您所提问题的全部背景,但我会尽力回答您。
您说过需要解压缩.rar文件,但这是不可能的,如果文件是.rar,则需要解压缩
] >>我只需要解压缩一个.zip
类似的东西应该起作用
from zipfile import ZipFile with ZipFile('test1.zip', 'r') as myzip: myzip.extractall(pwd='<password>')
- 如果是.rar,则>
pip install rarfile(仅在python 3中安装)
from rarfile import RarFile with RarFile('test2.rar', 'r') as myrar: myrar.extractall(pwd='<password>')
- 您提到密码以文件名的形式出现在.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)
参考