0

仮想ボックスで実行できるisoファイルの作成につながる特定のWindowsコマンドを自動化するpythonプログラムを書いています。

最後に「mkisofs -no-emul-boot -boot-load-size 4 -o filename.iso -b filename.flp cdiso/」という 4 つのコマンドがあります。

os.popen を使用してコマンドを実行したところ、この最後のコマンド以外はすべて正常に動作することがわかりました。

返されたオブジェクトから取得できるのは、68864 のステータス コードだけです。Virtual box が iso ファイルをロードしようとするとエラーを返すため、動作していないことがわかります。

ここで何がうまくいかないのでしょうか?

ありがとう!

4

1 に答える 1

0

IIRC、によって返されるエラーは、ライブラリ呼び出しpopenと同じです。system()実際のエラーを抽出するには、WEXITSTATUSマクロを使用する必要があります。

幸いなことに、この機能は として利用できますos.WEXITSTATUS

>>> import os
>>> os.WEXITSTATUS(68864)
13

それが何を意味するのかはわかりませんが、終了する前にコンソールに何らかのエラーを出力する可能性があります。プログラムを手動で実行しようとしましたか?

大雑把な推測では、この13数字が実際にerrno失敗の原因であるということです。その場合は、次のようになります。

>>> os.sterror(13)
'Permission denied'
于 2013-10-13T12:56:10.130 に答える