所以,我正在制作一个 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?