P7zip防止CLI promp

2024-04-26 21:50:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python脚本中使用Pyunpack库。原来这只是使用p7zip CLI来提取7zip文件。问题是,如果脚本运行到一个重复的文件中,p7zip希望知道是否要覆盖,从而提示用户并中断脚本。你知道吗

有没有办法预先回答Pyunpack的overwrite提示,以便执行代码?或者,如果这不可能,有没有一种方法可以通过Python将CLI提示传递回去,这样程序至少可以继续使用用户输入?你知道吗

如果我在bash中输入Python脚本使用的相同命令,我会得到以下结果:

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只是挂起在子进程中,同时等待对此提示符的响应。你知道吗

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


Tags: 文件topath用户脚本homecliall
1条回答
网友
1楼 · 发布于 2024-04-26 21:50:37

我找到解决办法了!谢谢伊坦给我指出了正确的方向。你知道吗

我不得不打开patoolib编辑p7拉链.py. 你知道吗

在定义extract_7z的地方,我硬编码了-y标志,注释如下:

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

cmdlist.append('-y')的正下方加上cmdlist = [cmd, 'x']。你知道吗

现在我的代码运行顺利!你知道吗

相关问题 更多 >