如何从Python在终端上执行多个命令

3

目前正在尝试在Ubuntu上对一些文件进行压缩加密。

我需要它们是.zip格式的。

通常我会在终端中输入以下命令:

zip -e secretDir.zip secretFile.txt

这通常会要求输入密码,例如:

Enter password: secret
Verify password: secret

除了密码未实际显示之外,此方法完美运行。

但是,我正在尝试从我的Python脚本(3.7)中执行此操作。

我已经使用subprocess.call(['zip', '-e', fileName + '.zip', fileName + '.txt'])成功压缩文件,但我该如何告诉zip密码是什么呢?

欢迎使用能够在压缩文件时进行加密的开源库。我已经听说过chilkat和CkPython。

1个回答

3
您可以使用 -p 参数直接将密码传递给 zip 命令。
subprocess.call(['zip', '-P', 'MyPassW0rd123', fileName + '.zip', fileName + '.txt'])

这个不起作用。它仍然要求输入密码并进行验证,之后我输入了两者,它创建了一个 MyPassW0rd123.zip 文件,并发出警告“zip warning: name not matched: fileName.zip”。 - small_cat_destroyer
抱歉,您需要删除“-e”标志。现已修复。(另外,请确保它是大写的“-P”。) - James
现在它可以工作了。小写的“-p”是问题所在。谢谢! - small_cat_destroyer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接