有关于这个话题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的命令?
import subprocess
cmd = ['7z', 'a', 'Test.7z', 'Test', '-mx9']
sp = subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
您可以使用下面的把它包装成一个功能:
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”(我认为这是正确的位置)。
下面的一个对我的作品,蟒蛇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文件格式。