最近开始学习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>')
Run Code Online (Sandbox Code Playgroud)
pip install rarfile(仅在 python 3 中安装)
from rarfile import RarFile
with RarFile('test2.rar', 'r') as myrar:
myrar.extractall(pwd='<password>')
Run Code Online (Sandbox Code Playgroud)
RarFile.namelist() 按名称返回存档成员列表。
所以你可以使用 split 来提取密码
s = 'pass-1337643656.data'
s.split('-')[1].split('.')[0]
print(s)
Run Code Online (Sandbox Code Playgroud)
'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)
Run Code Online (Sandbox Code Playgroud)
参考。
| 归档时间: |
|
| 查看次数: |
9444 次 |
| 最近记录: |