Qt C++通过cmd命令行调用python脚本(机器学习深度学习算法)文件-----传入脚本文件参数并获取脚本文件的输出结果

1.运行环境

1.python运行环境
	anaconda
2.QT
3..配置好python编译器(需要导入项目所需要的库 numpy pandas sklearn torch..等)
4.首先在cmd命令行里面 使用配置好的python编译器 运行项目
	目前需要输入的参数是写死在项目里面的,输出的结果是显示在命令行(cmd)上面的
	python D:\Pycharm_Code\....\main.py(编译器  项目文件的所在路径)

2.脚本输入参数和输出结果

该项目需要传入的参数(处理的数据文件的绝对路径)
该项目输出处理完数据之后的算法指标(precision等)结果

3.python文件怎么接收命令行传入的参数

定义Test.py文件按如下代码进行测试

    import argparse
    if __name__ == "__main__":
      parser = argparse.ArgumentParser()
      parser.add_argument('--InputArgs', nargs='+')
      args = parser.parse_args()
      print(args.InputArgs)


在cmd窗口运行如下代码:
//解释器                     脚本文件所在目录                   接收参数变量         参数
python                      D:/Pycharm_Code/.../Test.py     --InputArgs          111 2355 222
程序输出结果
['111', '2355', '222']

4.Qt怎么调用cmd命令行 执行python脚本文件 传入.py文件所需的参数,以及收集.py文件的运行结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.mainwindow.cpp的代码

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include<bits/stdc++.h>
#include<iostream>
using namespace std;

#include <QProcess>
#include <QDebug>
#include<QMessageBox>
#include<QTextCodec>


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //Qprocess调用外部程序执行
    m_process = new QProcess(this);
    connect(m_process,
            SIGNAL(readyReadStandardOutput()),
            this,
            SLOT(onReadData()));
    m_process->setReadChannel(QProcess::StandardOutput);
	//使用cmd命令行执行
    QString command = "cmd";
    //QstringList args 保存相关的变量
    QStringList args;
    args.append("/c");
    args.append("python");//python解释器 安装了脚本文件运行所需的依赖包
    args.append("D:\\Pycharm_Code\\...\\main.py"); //脚本文件的主文件
    args.append("--InputArgs");//脚本文件接收参数的变量
    args.append("D:\\Pycharm_Code\\...\\a.csv");//脚本文件接收的数据文件的路径(这里提供的是文件的绝对路径) 进行处理
    args.append("D:\\Pycharm_Code\\...\\b.csv");
    args.append("D:\\Pycharm_Code\\...\\c.csv");
    args.append("D:\\Pycharm_Code\\...\\d.csv");
    args.append("D:\\Pycharm_Code\\...\\e.csv");
    args.append("D:\\Pycharm_Code\\...\\f.csv");
    m_process->start(command,args);

}


//结果输出函数
void MainWindow::onReadData()
{
    QTextCodec* gbkCodec = QTextCodec::codecForName("GBK");
    QString result = gbkCodec->toUnicode(m_process->readAll());
   
    //输出main.py输出的结果
    string cstring = string((const char *)result.toLocal8Bit().constData());
    cout<<cstring<<endl;
}


MainWindow::~MainWindow()
{
    delete ui;
}




  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值