Python实践:脚本调用exe与exe输出获取的方法总结

Python实践:脚本调用exe与exe输出获取的方法总结

    • 实现思路
    • 参考资料

本文主要目的是研究总结通过Python脚本模拟实现bat批处理调用exe的功能,并获取exe在屏幕上的输出信息进行分析。

实现思路


通过参考资料里的几篇博客,可以知道Python调用exe的两种方法:os.system()os.popen()

os.system

    param1 = r'p1'  # 参数1
    param2 = r'p2'  # 参数2 
    para = "%s \"%s\" \"%s\" " \
           % (r"D:\script\test.bat",
              param1, param2)  # 注意是temp.bat不是exe
    ret = os.system(para) # 返回主函数返回值
    print(ret)
    time.sleep(6)

其中bat脚本如下:

@echo off
:: 系统切换到当前文件所在目录
cd /d %~dp0

:: %1,%2分别代表参数1/2
start D:\software\test.exe %1 %2

::pause

本质是利用Python启动bat脚本再去运行exe。

os.popen

    para = "%s \"%s\" \"%s\" " \
           % (exe_path, param1, param2)  # 类cmd指令字符串
    f_out_std = os.popen(para) # 获取stdout打印的结果
    run_info = f_out_std.read()
    f_out_std.close()
    print(run_info)

本质是直接用Python环境类cmd传参直接启动exe。

system和popen方法区别

  • 相同点:两者都能用Python模拟命令窗运行cmd/shell系统指令

  • 差异点:system只能返回主函数的返回值如0/-1;popen可以返回指令实现后stdout屏幕输出的内容

  • 具体内容参见:如何获取os.system函数返回的信息,link1,link2。

小结

以上,介绍了Python用os模块的两种传参调度exe的方法,以及获取exe执行结果或屏幕输出的内容思路。

参考资料


  1. Python运行带参数传入的exe文件,link
  2. python中3种调用可执行文件.exe的方法,link

你可能感兴趣的:(Python世界,python,服务器,linux)