subprocess.Popen("cmd.exe", creationflags = subprocess.CREATE_NEW_CONSOLE)
就这么一句就实现了调用外部exe,并且还可以通过查看其结果,当然可以改造一下,让其重定向到文件里,不过,满足需求就足够了,因为手上要批量查看的机器也就20来台,所以全部窗口打开也无所谓,反正还要打开检查其运行情况,不如,就简洁一些,一开始还真不了解Popen有creationflags这个选项,还杯具到去研究win32api的CreateProcess,不过,后来查看Python官方文档才发现,如果在Windows平台的话,subprocess是会调用CreateProcess,结论就是:大家有时间还是多阅读手册吧
如果对手册熟悉的话,就不会研究一个问题花太长时间了,不过,这个过程也是不错啦,因为发现win32api确实很强大,可以很轻易的几行代码就实现了当年MFC的强大功能。
在研究这个问题的时候,还尝试用Erlang去实现,不过对Erlang还不是很熟悉,所以还是实现不了想要的效果,不过,也大概了解到Erlang也提供一个接口来调用外部程序,那就是os:cmd/1,有时间再深入研究这个代码,因为Erlang的并发确实自己想要的效果,所以最终也选择了这语言,而并发对于Python也是天生不足(或者不太熟Python吧,不过发现其实用multiprocessing.Pool性能也是不错,起码写的测试程序比线程及协程的运行速度都要高效),另外希望Python 3.X的某个版本可以解决并发问题了,这样就给力了。