それで、私はCD書き込みアプリを作成していて、ユーザーがディスクを挿入できるようにドライブを取り出す必要があります。少し複雑ですが、私が遭遇する最も単純なケースはこれです。コマンドラインからcdrecordを使用して、次のコマンドを使用してcdトレイを取り出すことができます。
cdrecord --eject dev='/dev/sg1'
subprocess.call
これは、次のように、で同じことができることを意味するはずです。
subprocess.call(["cdrecord", "--eject", "dev='/dev/sg1'"])
ただし、これを行うと、次のエラーが発生します。
wodim: No such file or directory.
Cannot open SCSI driver!
For possible targets try 'wodim --devices' or 'wodim -scanbus'.
For possible transport specifiers try 'wodim dev=help'.
For IDE/ATAPI devices configuration, see the file README.ATAPI.setup from
the wodim documentation.
トレイが開きません。
これは、コマンドラインから実行しようとしたときに発生したエラーと非常によく似ていますが、sgカーネルモジュールをロードすることでこのエラーを修正しました。
実行した場合:
subprocess.call(["cdrecord", "--eject"])
トレイがうまく開きます。ただし、これはおそらく複数のCDトレイで機能する必要があるため、機能しません。
これでCDを正しく取り出すにはどうすればよいですか?