我想从 Python 脚本创建一个 RAR 文件。我需要与 Rar.exe 通信,因为我只想要多卷存档集中的第一个 RAR 卷,仅此而已。确保在每卷后都会询问该-vp
开关。Create next volume ? [Y]es, [N]o, [A]ll
第一次出现这个问题时,我想回答“否”。我该如何做到这一点?
我一直在阅读并尝试了很多东西,我发现这样的事情可以用pexpect来完成。我一直在尝试两种不同的 Windows 端口:wexpect和winpexpect。结果是我的脚本会挂起。没有创建 RAR 文件。这是我的代码:
import wexpect
import sys
rarexe = "C:\Program Files\WinRAR\Rar.exe"
args = ['a', '-vp', '-v2000000b', 'only_first.rar', 'a_big_file.ext']
child = wexpect.spawn(rarexe, args)
child.logfile = sys.stdout
index = child.expect(["Create next volume ? [Y]es, [N]o, [A]ll",
wexpect.EOF, wexpect.TIMEOUT], timeout=10)
if index == 0:
child.sendline("N")
else:
print('error')
也欢迎其他方法。