相关疑难解决方法(0)

如何使用7zip压缩而不是zip,代码更改

我有一个代码用zip压缩特定文件夹中的每个文件,但我想用7zip压缩它,那该怎么办?

这是我到目前为止:

for date in dict_date:#zipping folders and get same name like the folder
    with ZipFile(os.path.join(src, '{0}.7z'.format(date)), 'w') as myzip:
        for subFolder in dict_date[date]:
            for fil in os.listdir(os.path.join(src, date, subFolder)):
                if not fil.endswith('.7z'):
                    myzip.write(os.path.join(src, date, subFolder, fil))
Run Code Online (Sandbox Code Playgroud)

python

9
推荐指数
1
解决办法
2万
查看次数

使用python 3提取7z文件

我试图使用 python 解压缩 7z 文件,但我似乎无法弄清楚。我想我可以在 python 3 中使用 lzma 模块,但我似乎无法弄清楚:

我认为它会像 zipfile 包一样工作:

import lzma
with lzma.open('data.7z') as f:
    f.extractall(r"<output path>")
Run Code Online (Sandbox Code Playgroud)

但在阅读文件后,似乎没有。所以这是我的问题:如何使用标准包提取 7z 文件?我不想调用 subprocess 来使用 7-zip 解压缩文件,因为我不能保证用户安装了这个软件。

我搜索了互联网和堆栈 oerflow 并注意到所有答案几乎都回到使用子处理上,我想像瘟疫一样避免这种情况。

虽然在 stackoverflow 上也有类似的问题,但答案仍然取决于 7-zip 或 7zip SDK。我不想使用 7-zip sdk/exe 进行提取,因为这假设用户已安装该软件。

这是 7z 文件中的属性:

在此处输入图片说明

python 7zip lzma python-3.x

7
推荐指数
1
解决办法
3万
查看次数

用python模仿7zip

我正在使用Python 3.6,目前我将子处理到我的7zip程序以获得我需要的压缩.

subprocess.call('7z a -t7z -ms=off {0} *'.format(filename))

我知道zipfile类有'ZIP_LZMA'压缩,但我传递的应用程序也说输出文件不正确.那么还有什么我需要添加到ZipFile类来使它模仿上面的命令?

python 7zip lzma

5
推荐指数
1
解决办法
660
查看次数

有没有办法使用Python 3从7z格式中提取文件?

我正在尝试使用 python 从 7z 格式中提取文件。有人能告诉我如何在 python 3.6 上完成它吗?

7zip python-3.6

5
推荐指数
1
解决办法
1万
查看次数

不支持Python Zipfile压缩方法

当我使用 ZIPCrypto 压缩时,这种方法起作用了。AES-256 失败了。请问如何解决这个问题?

我之前使用以下 Python 代码成功打开了使用 7-Zip 创建的受密码保护的 .zip 文件:

import zipfile

zip_file = zipfile.ZipFile('crack_me.zip')
output_verbose = 1  # increase that for long password list
with open('passwords.txt', 'rb') as password_list:
    for index, line in enumerate(password_list):
        try:
            pwd = line.strip(b'\r\n')
            zip_file.extractall(pwd=pwd)
        except RuntimeError as e:
            print(e)
            if index % output_verbose == 0:
                print('{}. The {} word not matched.'.format(index + 1, pwd))
        else:
            print('{}. Wow ! found the password: {}'.format(index + 1, pwd))
            break

zip_file.close()
Run Code Online (Sandbox Code Playgroud)

然而,由于无法理解的原因,它在多次尝试中只成功了几次。大多数情况下,都会给出“不支持该压缩方法”的例外情况。

我尝试删除、重命名、重新创建 .zip 文件,但没有成功。它偶尔起作用对我来说毫无意义。

我尝试将问题简化如下:

import …
Run Code Online (Sandbox Code Playgroud)

python python-zipfile

2
推荐指数
2
解决办法
1万
查看次数

标签 统计

python ×4

7zip ×3

lzma ×2

python-3.6 ×1

python-3.x ×1

python-zipfile ×1