P7zip阻止CLI提示

时间:2016-03-15 17:32:55

标签: python linux bash compression 7zip

我在Python脚本中使用Pyunpack库。事实证明这只是使用p7zip CLI来提取7zip文件。问题是,如果脚本遇到重复文件,p7zip想要知道是否要覆盖,提示用户并中断脚本。

有没有办法可以预先回复Pyunpack的覆盖提示,以便我的代码执行?或者如果那是不可能的,有没有办法通过Python传递CLI提示,这样程序至少可以继续用户输入?

如果我输入Python脚本用于bash的相同命令,我会得到:

7z x -o/home/path/to/extract/directory -- /home/path/to/file.7z

file /something/in/the/7z/directory/filename.thing already exists. Overwrite with filename.thing?
(Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit?

但是当我在Python中执行它时,Python只是在等待对此提示的响应时挂起在子进程中。

我想自动使用自动重命名选项。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案!感谢Etan指出我正确的方向。

我必须打开patoolib并编辑p7zip.py。

它定义extract_7z的位置我通过注释来硬编码-y标志:

if not interactive:
    cmdlist.append('-y')

cmdlist.append('-y')下面添加cmdlist = [cmd, 'x']

现在我的代码运行顺利了!