我在Python脚本中使用Pyunpack库。事实证明,这只是使用p7zip命令行界面来解压缩7zip文件。问题是,如果脚本遇到重复的文件,p7zip希望知道是否覆盖,并提示用户并中断脚本。
有没有办法预先回答来自Pyunpack的覆盖提示,以便执行我的代码?如果这是不可能的,有没有办法通过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只是在等待对此提示的响应时挂起在子进程中。
我想使用自动重命名选项自动全部重命名。有什么建议吗?
发布于 2016-03-16 02:46:48
我找到解决方案了!感谢Etan为我指明了正确的方向。
我不得不打开patoolib并编辑p7zip.py。
在它定义extract_7z的地方,我通过注释掉硬编码了-y标志:
if not interactive:
cmdlist.append('-y')并在cmdlist = [cmd, 'x']下面添加cmdlist.append('-y')。
现在我的代码运行得很流畅了!
https://stackoverflow.com/questions/36018234
复制相似问题