从Python的7zip的命令

问题描述 投票:8回答:3

有关于这个话题post了,但它并没有一个明确的答案,这我再次询问这里的根本问题:

你如何用Python做7zip的命令?

尝试使用subprocess模块,我实现了其运行,但什么都不做(从我可以告诉)的情况如下:

import subprocess
cmd = ['7z', 'a', '"Test.7z"', '"Test"', '-mx9']
subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)

我知道下面的命令7zip的工作,因为我已经在Windows命令行本身进行测试:

7z a "Test.7z" "Test" -mx9

我怎么能实现从Python的那么简单7zip的命令?

python 7zip
3个回答
9
投票
import subprocess
cmd = ['7z', 'a', 'Test.7z', 'Test', '-mx9']
sp = subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)

6
投票

您可以使用下面的把它包装成一个功能:

import subprocess

def sevenzip(filename, zipname, password):
    print("Password is: {}".format(password))
    system = subprocess.Popen(["7z", "a", zipname, filename, "-p{}".format(password)])
    return(system.communicate())

这无疑工程,我已经尝试和测试它。如果你想调整它即提取文件,那么你可以使用以下命令:

def extractfiles(zipname):
    system = subprocess.Popen(["7z", "e", zipname])
    return(system.communicate())

试试这个和还是让我知道你上车。

请记住这是Linux。在Windows中,交换 “7z格式” 与 “C:\ Program Files文件\的7-Zip \ 7z.exe”(我认为这是正确的位置)。


2
投票

下面的一个对我的作品,蟒蛇3.5.2,windows8.1,7Z路径添加到系统

    rc = subprocess.call(['7z', 'a', output_filename + '.zip', '-mx9', '-pSecret^)'] + [src_folder + '/'])

有两个参数,-mx9意味着最大的压缩,-pSecret ^)表示密码为“秘密^)”,“^”是逃避“)”适用于Windows系统,但是当你解压缩,这将需要在“^”型。

如果没有“^”,Windows系统将不适当7z.exe创建ZIP文件的密码。

另外,如果你想用“-mhe”开关,你需要在7z格式,而不是ZIP文件格式。

© www.soinside.com 2019 - 2024. All rights reserved.