0

Python スクリプトから RAR ファイルを作成したいと考えています。マルチボリューム アーカイブ セットの最初の RAR ボリュームだけが必要なので、Rar.exe と通信する必要があります。スイッチは、各ボリュームの後に-vp必ず尋ねられます。Create next volume ? [Y]es, [N]o, [A]llこの質問が最初に表示されたときは、いいえと答えたいと思います。どうすればこれを達成できますか?

私は多くのことを読んで試してきましたが、このようなことがpexpectで達成できることがわかりました。私は 2 つの異なる Windows ポートを試してきました: wexpectwinpexpect。その結果、スクリプトがハングします。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')

他のアプローチも大歓迎です。

4

2 に答える 2