[英]Auto unzip of password-protected rar files in python
最近开始学习 python 遇到了一个问题....我需要解压 rar 文件,该文件受密码保护,但密码写在文件名中,在存档中。 等等 ~ 300 次。 如何、用什么以及在哪里实施? 比如有一个压缩包383442389.rar,它有两个文件,pass-1337643656.data(名字包含压缩包密码)和下面的压缩包)
我不确定你问题的所有背景,但我会尽力回答你。
你说你需要解压一个文件.rar,但那是不可能的,如果文件是.rar你需要解压
如果你只需要解压 a.zip
类似的东西应该工作
from zipfile import ZipFile
with ZipFile('test1.zip', 'r') as myzip:
myzip.extractall(pwd='<password>')
pip install rarfile (只安装在python 3)
from rarfile import RarFile
with RarFile('test2.rar', 'r') as myrar:
myrar.extractall(pwd='<password>')
RarFile.namelist() 按名称返回存档成员列表。
所以你可以使用split提取密码
s = 'pass-1337643656.data'
s.split('-')[1].split('.')[0]
print(s)
'1337643656'
你也可以使用正则表达式来提取它
结论。
using.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)
参考。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.