admin 管理员组

文章数量: 1184232


2024年4月13日发(作者:钢结构基础工程报价清单)

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

有个C++项目是读取配置参数文件并打印对应的结果,后来需要多次修改配置文件并运行,

于是想到写个python脚本执行这一过程,今天通过本文给大家分享python多次调用exe文

件运行不同的结果,感兴趣的朋友一起看看吧

摘要: 有个C++项目是读取配置参数文件并打印对应的结果,后来需要多次修改配置文件

并运行,于是想到写个python脚本执行这一过程。

写一个测试项目,项目结构如下:

根目录

// C++项目,从中读取配置文件并打印对应的结果

// 多次循环,修改配置文件,运行.exe文件并打印

/build/

// C++生成的.exe文件

/data/

// C++读取的配置文件

配置文件如下

da, 4

db, 1.1

dc, 1.2

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

#include

#include

#include

#include

#include

using namespace std;

map readKeyValuePairs(const string& fileName) {

map 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 ans = readKeyValuePairs("../data/");

cout << () << "," << ans["da"]+ans["db"] << "; " << endl;

}

代码中注意配置文件与生成的.exe文件的相对位置。其中()用于判断是否正确读到了

数据。

下面的代码用于多次修改配置文件,运行.exe文件并打印出.exe文件的运行结果。

import subprocess

def run_exe(exe_path):

process = (exe_path, stdout=, cwd='build')

output, error = icate()

return ('utf-8')

for n in range(5):

with open('data/', mode='w') as txtfile:

print(f'da, {n}ndb, 1.1ndc, 1.2', file=txtfile)

output = run_exe('build/')

print(output, end='')

其中cwd参数的详细解释见 Python cwd (1) -知乎,如果不设置这个参数,.exe文件的运行

目录默认是根目录,也就是所在的目录,需要用这个参数改成/build/目录,也就

是所在的目录。

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 = (exe_path, stdout=)

output, error = icate()

return ('utf-8')

exe_path = 'your/exe_'

output = run_exe(exe_path)

print(output)

到此这篇关于如何用python多次调用exe文件运行不同的结果的文章就介绍到这了


本文标签: 文件 配置文件 结果 运行 参数