Python os.popen返回68864错误

时间:2013-10-13 12:30:40

标签: python-2.7

我正在编写一个python程序来自动执行某些Windows命令,这些命令应该会创建一个我可以在虚拟框中执行的iso文件。

最后有4个命令是“mkisofs -no-emul-boot -boot-load-size 4 -o filename.iso -b filename.flp cdiso /”

我使用os.popen来执行命令,我发现除了最后一个命令之外的所有内容都能正常工作。

从返回的对象中我得到的是状态代码68864.我知道它无法正常工作,因为虚拟框在尝试加载iso文件时返回错误。

这里可能出现什么问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

IIRC,popen返回的错误与system()库调用相同。要提取实际错误,您必须使用WEXITSTATUS宏。

幸运的是,您可以os.WEXITSTATUS使用此功能。

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

我不确定它的含义,它可能会在终止之前向控制台输出一些错误。您是否尝试手动运行该程序?

一个疯狂的猜测是,这个13数字实际上是导致失败的errno。如果是这样的话,那么:

>>> os.sterror(13)
'Permission denied'