私はgrowisofsを使ってPythonアプリケーションからisoを焼き付けています。私は2つの異なるファイルに2つのクラスを持っています。 GUI()(main.py)とBoxblaze()(core.py)です。 GUI()はウィンドウを構築し、すべてのイベントやものを処理し、Boxblaze()はGUI()が呼び出すすべてのメソッドを持っています。subprocess.callの出力をプログレスバーにパイプする
ユーザーがで燃焼させるデバイスを選択している、そしてファイルが燃焼させる際に今、私は次のコマンドを呼び出すメソッドを呼び出す必要があります: `
growisofs -use-the-force-luke=dao -use-the-force-luke=break:1913760 -dvd-compat -speed=2 -Z /burner/device=/full/path/to.iso
このコマンドは、同様の出力を与える必要があります
Executing 'builtin_dd if=/home/nevon/games/Xbox 360 isos/The Godfather 2/alls-tgod2.iso of=/dev/scd0 obs=32k seek=0'
/dev/scd0: "Current Write Speed" is 2.5x1352KBps.
#more of the lines below, indicating progress.
7798128640/7835492352 (99.5%) @3.8x, remaining 0:06 RBU 100.0% UBU 99.8%
7815495680/7835492352 (99.7%) @3.8x, remaining 0:03 RBU 59.7% UBU 99.8%
7832862720/7835492352 (100.0%) @3.8x, remaining 0:00 RBU 7.9% UBU 99.8%
builtin_dd: 3825936*2KB out @ average 3.9x1352KBps
/dev/burner: flushing cache
/dev/burner: closing track
/dev/burner: closing disc
このコマンドは、Boxblaze()のburn()メソッドで実行されます。今私の質問は以下の通りです
def burn(self, file, device):
subprocess.call(["growisofs", '-dry-run', "-use-the-force-luke=dao", "-use-the-force-luke=break:1913760", "-dvd-compat", "-speed=2", "-Z", device +'='+ file])
:
どのように出力(括弧内のパーセンテージ)から進捗状況を取得し、私のプログレスバーがあることができ、それは単に、このようになりますその進行に「追従」するように設定されていますか?私のプログレスバーは、次のような、GUI()クラスに呼び出されます。
GET = builder.get_object
self.progress_window = GET( "progressWindow")
self.progressbar = GET( "プログレスバー")
GUIを応答したままにするためにこのコマンドを実行する必要があります(プログレスバーを更新して、ユーザーが希望する場合は書き込みをキャンセルできるようにします)。もしそうなら、どのように私はそれを行うことができ、進捗バーに進行状況を引き渡すことができますか?興味のある方は
完全なコードはon Launchpad可能です。
bzr branch lp:boxblaze
ああ、あなたは不思議に思った場合には、このアプリケーションはLinuxでのみ動作するように意図される - ので、クロスプラットフォームの互換性を心配しないでください:あなたはバザーがインストールされている場合は、単に実行します。
私はそれが何を意味しているかを完全に理解しているかどうかはわかりません。これは私がそれ(http://pastebin.com/m6b1bdff6)を実装しようとした方法ですが、私が(端末に)取得している唯一の出力は次のとおりです: /dev/scd0: "現在の書き込み速度"は2.5x1352KBpsです。 –
私が探している情報はスタンダードを経由しているようです。しかし、今では、すべてが画面に表示されるので、私の解析はうまくいかないようです(pastebinのリンクを参照)。 GUIはまだフリーズしています。 core.py→http://pastebin.com/m586398c8 main.pu→http://pastebin.com/m28658de 実際には、-dry-runフラグをgrowisofsコマンドに追加して試すことができますDVDを無駄にすることなく。 シバン全体を見るには、次のコマンドを実行してください: bzr branch lp:boxblaze –
申し訳ありませんが、私のアプリケーションの実行結果を含めるのを忘れていました。これは次のとおりです。 http://pastebin.com/m6e55585a –