您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 |

自学教程:如何用python多次调用exe文件运行不同的结果

51自学网 2023-06-16 18:55:50
  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 subprocessdef 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 subprocessdef 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文件内容请搜索wanshiok.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持wanshiok.com!


浅谈一下关于Python对XML的解析
解决pip
51自学网自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1