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



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

我不确定你问题的所有上下文,但我会尽力回答你。

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

  2. 如果您只需要解压缩.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(( 按名称返回存档成员的列表。

因此,您可以使用拆分来提取密码

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)

参考。

  • https://python-unrar.readthedocs.io/en/v0.3/rarfile.html
  • https://www.w3schools.com/python/ref_string_split.asp
  • 根据内容筛选字符串列表
  • https://docs.python.org/2/library/zipfile.html
  • 在 Python 中解压缩文件

相关内容

  • 没有找到相关文章

最新更新