subprocess的使用

发布时间 2023-09-11 17:00:10作者: Bonne_chance

subprocess的使用

windows下,如果我们想在不同的路径下,先执行一个脚本,后又要执行一个exe跑程序,然后又要对exe结果进行分析,在这种情况下,如果手动一个一个执行,肯定是可以的,但是违背了智能化精神,智能化就是要求批次处理,智能化顺序执行,因此,尽可能减少手工劳动完成想要的任务是code的一个愿景。那么对于上述的场景,能不能实现呢?答案是可以的。在这里就用到了python里的subprocess库。

其实,这里有几种场景:

  • 脚本的执行,通常使用python xxx.py, 这种场景要注意,有的必须要在脚本目录执行,因为在脚本里可能涉及路径问题,搞不好,你在cmd下执行脚本,会爆出XXX not found的错误,因此,在windows下执行脚本,也要跟linux下一样,路径要搞对。
  • 可执行文件的运行,通常是在文件路径,直接双击,就可以跑起来,也要注意路径问题。

可能还有其他的场景,不过以上的基本够用了。

python subprocess这个库就能够很好的把上述的场景覆盖,然后得到你想要的结果。其实很简单,语法如下:

  • subprocess.check_call([sys.executable, script.py], cwd=working_dir) 对应python XXX.py的场景
  • subprocess.check_call([exe_path + "xxx.exe"], cwd=exe_dir)对应双击执行exe的场景

在很多时候,可能不止执行一次程序,会在不同的路径,将上述的过程执行一遍,那么就在外面加for循环就好了。