如何用python多次调用exe文件运行不同的结果

 更新时间:2023年05月11日 11:29:51   作者:找不到服务器zhn  
有个C++项目是读取配置参数文件并打印对应的结果,后来需要多次修改配置文件并运行,于是想到写个python脚本执行这一过程,今天通过本文给大家分享python多次调用exe文件运行不同的结果,感兴趣的朋友一起看看吧

摘要: 有个C++项目是读取配置参数文件并打印对应的结果,后来需要多次修改配置文件并运行,于是想到写个python脚本执行这一过程。
写一个测试项目,项目结构如下:

根目录
main.cpp // C++项目,从file.csv中读取配置文件并打印对应的结果
main.py // 多次循环,修改配置文件file.csv,运行.exe文件并打印
/build/
 untitled.exe // C++生成的.exe文件
/data/
 file.csv // C++读取的配置文件

配置文件file.csv如下

da, 4
db, 1.1
dc, 1.2

C++读取配置文件测试代码main.cpp如下

#include <iostream>
#include <vector>
#include <fstream>
#include <sstream>
#include <map>
using namespace std;
map<string, double> readKeyValuePairs(const string& fileName) {
    map<string, double> myMap;
    ifstream file(fileName);
    string line;
    while (getline(file, line)) {
        stringstream ss(line);
        string key;
        double value;
        getline(ss, key, ',');
        ss >> value;
        myMap[key] = value;
    }
    return myMap;
}
int main() {
    map<string, double> ans = readKeyValuePairs("../data/file.csv");
    cout << ans.size() << "," << ans["da"]+ans["db"] << ";    " << endl;
}

代码中注意配置文件与生成的.exe文件的相对位置。其中ans.size()用于判断是否正确读到了数据。
下面的代码用于多次修改配置文件,运行.exe文件并打印出.exe文件的运行结果。

import subprocess
def run_exe(exe_path):
    process = subprocess.Popen(exe_path, stdout=subprocess.PIPE, cwd='build')
    output, error = process.communicate()
    return output.decode('utf-8')
for n in range(5):
    with open('data/file.csv', mode='w') as txtfile:
        print(f'da, {n}\ndb, 1.1\ndc, 1.2', file=txtfile)
    output = run_exe('build/untitled.exe')
    print(output, end='')

其中cwd参数的详细解释见 Python cwd (1) -知乎,如果不设置这个参数,.exe文件的运行目录默认是根目录,也就是main.cpp所在的目录,需要用这个参数改成/build/目录,也就是untitled.exe所在的目录。
python代码运行结果如下

3,1.1;    
3,2.1;    
3,3.1;
3,4.1;
3,5.1;  

下面的代码是chatGPT生成的python调用exe文件的原始代码

import subprocess
def run_exe(exe_path):
    process = subprocess.Popen(exe_path, stdout=subprocess.PIPE)
    output, error = process.communicate()
    return output.decode('utf-8')
exe_path = 'your/exe_file.exe'
output = run_exe(exe_path)
print(output)

到此这篇关于如何用python多次调用exe文件运行不同的结果的文章就介绍到这了,更多相关python多次调用exe文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python根据文章标题内容自动生成摘要的实例

    python根据文章标题内容自动生成摘要的实例

    今天小编就为大家分享一篇python根据文章标题内容自动生成摘要的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Python在画图时使用特殊符号的方法总结

    Python在画图时使用特殊符号的方法总结

    在制作图表时,如果遇到需要利用特殊符号进行表示时该怎么办呢?不用慌,这篇文章为大家总结了python画图中使用各种特殊符号的方式,需要的可以参考一下
    2022-04-04
  • Python Loguru日志封装装饰器实现过程

    Python Loguru日志封装装饰器实现过程

    这篇文章主要介绍了Python Loguru日志封装装饰器实现过程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03
  • Python装饰器用法实例分析

    Python装饰器用法实例分析

    这篇文章主要介绍了Python装饰器用法,结合实例形式分析了带参数装饰器、无参数装饰器等相关实现与使用技巧,需要的朋友可以参考下
    2019-01-01
  • Python使用异步线程池如何实现异步TCP服务器交互

    Python使用异步线程池如何实现异步TCP服务器交互

    这篇文章主要介绍了Python使用异步线程池如何实现异步TCP服务器交互问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • jupyter读取错误格式文件的解决方案

    jupyter读取错误格式文件的解决方案

    这篇文章主要介绍了jupyter读取错误格式文件的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python 使用office365邮箱的示例

    Python 使用office365邮箱的示例

    这篇文章主要介绍了Python 使用office365邮箱的示例,帮助大家利用python进行高效办公,感兴趣的朋友可以了解下
    2020-10-10
  • Python numpy.add函数的具体使用

    Python numpy.add函数的具体使用

    本文主要介绍了Python numpy.add函数的具体使用,numpy.add函数不仅仅是一个简单的加法操作,更是一个功能强大且高度优化的工具,可适用于各种复杂的数值计算和数据处理任务,感兴趣的可以了解一下
    2023-12-12
  • Python模拟登录requests.Session应用详解

    Python模拟登录requests.Session应用详解

    这篇文章主要介绍了Python模拟登录requests.Session应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Python使用tkinter实现小时钟效果

    Python使用tkinter实现小时钟效果

    这篇文章主要为大家详细介绍了Python使用tkinter实现小时钟效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02

最新评论