首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >7zip来自Python的命令

7zip来自Python的命令
EN

Stack Overflow用户
提问于 2012-06-17 05:18:29
回答 3查看 26.7K关注 0票数 15

已经有一个关于这个主题的post,但它没有明确地回答我在这里重新提出的基本问题:

如何从Python中创建7zip命令?

为了尝试使用subprocess模块,我实现了以下代码,它可以运行,但什么也不做(据我所知):

代码语言:javascript
复制
import subprocess
cmd = ['7z', 'a', '"Test.7z"', '"Test"', '-mx9']
subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)

我知道下面的7zip命令可以工作,因为我已经在Windows命令行上测试过了:

代码语言:javascript
复制
7z a "Test.7z" "Test" -mx9

如何在Python中实现这个简单的7zip命令?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-17 05:47:01

代码语言:javascript
复制
import subprocess
cmd = ['7z', 'a', 'Test.7z', 'Test', '-mx9']
sp = subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
票数 11
EN

Stack Overflow用户

发布于 2017-04-02 23:10:09

您可以使用以下代码将其包装为函数:

代码语言:javascript
复制
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())

正如我所尝试和测试的那样,这绝对是有效的。如果你想调整它,也就是解压文件,那么你可以使用以下命令:

代码语言:javascript
复制
def extractfiles(zipname):
    system = subprocess.Popen(["7z", "e", zipname])
    return(system.communicate())

试一试,让我知道你的进展如何。

请记住,这是针对Linux的。在Windows中,将"7z“替换为"C:\Program Files\7-Zip\7z.exe”(我认为这是正确的位置)。

票数 7
EN

Stack Overflow用户

发布于 2016-10-21 05:15:22

下面的代码适用于我,python 3.5.2,windows8.1,7z路径添加到系统中

代码语言:javascript
复制
    rc = subprocess.call(['7z', 'a', output_filename + '.zip', '-mx9', '-pSecret^)'] + [src_folder + '/'])

有两个参数,-mx9表示最大压缩,-pSecret^)表示密码是"Secret^)“,"^”是windows系统中“)”的转义,但解压时,需要键入"^“。

如果没有"^",windows系统将不会在7z.exe创建压缩文件时应用密码。

另外,如果你想使用"-mhe“开关,你需要7z的文件格式,而不是zip。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11067097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档