关于这个主题已有一篇文章,但它没有明确回答我在这里重新提出的基本问题:
你如何从Python制作7zip命令?
尝试使用子进程模块,我实现了以下运行但没有做任何事情(从我能说的):
import subprocess
cmd = ['7z', 'a', '"Test.7z"', '"Test"', '-mx9']
subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)
我知道以下7zip命令可以正常工作,因为我已经在Windows命令行上进行了测试:
7z a "Test.7z" "Test" -mx9
Run Code Online (Sandbox Code Playgroud)
我怎么能从Python实现这个简单的7zip命令?
import subprocess
cmd = ['7z', 'a', 'Test.7z', 'Test', '-mx9']
sp = subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令将其包装为一个函数:
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())
Run Code Online (Sandbox Code Playgroud)
经过我的尝试和测试,这肯定可以工作。如果要进行调整,即提取文件,则可以使用以下命令:
def extractfiles(zipname):
system = subprocess.Popen(["7z", "e", zipname])
return(system.communicate())
Run Code Online (Sandbox Code Playgroud)
试试看,让我知道你的生活。
请记住,这是针对Linux的。在Windows中,用“ C:\ Program Files \ 7-Zip \ 7z.exe”交换“ 7z”(我认为这是正确的位置)。