python调用shell命令(打开)并等待命令完成。一旦工作完成,如何获得信号?
问题描述:
我正在使用一个名为shoebox.app的应用程序,它可以将一个psd文件分割为几个png文件。 该应用程序提供了一个CMD界面,我试图在termial的正常工作:python调用shell命令(打开)并等待命令完成。一旦工作完成,如何获得信号?
open /Applications/ShoeBox.app --args \"files=xxx.psd\"
,现在我想写一个python脚本做的工作:
import os
if __name__ == '__main__':
CMD = "open /Applications/ShoeBox.app --args \"files=xxx.psd\""
os.system(CMD)
这也能正常工作。
现在我想要做的事后的“劈裂的PSD,PNG工作”完成:
import os
if __name__ == '__main__':
CMD = "open /Applications/ShoeBox.app --args \"files=xxx.psd\""
os.system(CMD)
do_something_to_pngs_func()
的问题是“分裂的工作”需要几秒钟,我需要等待,直到它结束然后拨打我的 do_something_to_pngs_func
功能。
但是,我怎么能知道os.system(CMD)
实际上结束了?
现在我的临时解决方案是在调用我的函数之前添加一个“time.sleep(10)
”,但这当然不是最好的解决方案。
任何建议将赞赏,感谢:)
答
默认情况下,立即open
命令返回。为了使open
等待应用程序完成后,使用-W
和-n
开关:
CMD = "open -W -n /Applications/ShoeBox.app --args \"files=xxx.psd\""
参考:
什么操作系统您使用的? – 2014-09-28 10:02:11