首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >P7zip阻止命令行界面提示

P7zip阻止命令行界面提示
EN

Stack Overflow用户
提问于 2016-03-16 01:32:55
回答 1查看 134关注 0票数 1

我在Python脚本中使用Pyunpack库。事实证明,这只是使用p7zip命令行界面来解压缩7zip文件。问题是,如果脚本遇到重复的文件,p7zip希望知道是否覆盖,并提示用户并中断脚本。

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

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

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

代码语言:javascript
复制
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只是在等待对此提示的响应时挂起在子进程中。

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

EN

回答 1

Stack Overflow用户

发布于 2016-03-16 02:46:48

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

我不得不打开patoolib并编辑p7zip.py。

在它定义extract_7z的地方,我通过注释掉硬编码了-y标志:

代码语言:javascript
复制
if not interactive:
    cmdlist.append('-y')

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

现在我的代码运行得很流畅了!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36018234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档