Python スクリプトから RAR ファイルを作成したいと考えています。マルチボリューム アーカイブ セットの最初の RAR ボリュームだけが必要なので、Rar.exe と通信する必要があります。スイッチは、各ボリュームの後に-vp
必ず尋ねられます。Create next volume ? [Y]es, [N]o, [A]ll
この質問が最初に表示されたときは、いいえと答えたいと思います。どうすればこれを達成できますか?
私は多くのことを読んで試してきましたが、このようなことがpexpectで達成できることがわかりました。私は 2 つの異なる 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')
他のアプローチも大歓迎です。