繁体   English   中英

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

[英]Auto unzip of password-protected rar files in python

最近开始学习 python 遇到了一个问题....我需要解压 rar 文件,该文件受密码保护,但密码写在文件名中,在存档中。 等等 ~ 300 次。 如何、用什么以及在哪里实施? 比如有一个压缩包383442389.rar,它有两个文件,pass-1337643656.data(名字包含压缩包密码)和下面的压缩包)

我不确定你问题的所有背景,但我会尽力回答你。

  1. 你说你需要解压一个文件.rar,但那是不可能的,如果文件是.rar你需要解压

  2. 如果你只需要解压 a.zip

类似的东西应该工作

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'

你也可以使用正则表达式来提取它

结论。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM