QProcess调用cmd执行yolov3小结

QString command="cmd";
QStringList arguments;
arguments.append("/c");
arguments.append("E:/tempFile/darknet-master/build/darknet/x64/testCmd.bat"); 
myProcess.startDetached(command,arguments);
myProcess.waitForFinished();
qDebug()<<QString::fromLocal8Bit(myProcess.readAllStandardError());

其中testCmd.bat中的内容为下面两行:

cd /d E:\tempFile\darknet-master\build\darknet\x64

darknet.exe detector test data/obj.data yolo-obj.cfg yolo-obj_626.weights

这段代码是执行yolo检测验证时的,而训练时的,只要把bat文件第二行中的test改为train,weights文件名改一下即可,这个内容详见官网:yolo代码GitHub

参考文章为:https://blog.csdn.net/qq_33485434/article/details/80509284 (参考的这篇文章内容转载仅供参考,我也没有完全调通)

在PyQt中,`QProcess` 类是一个用于在独立进程中执行外部命令的强大工具。它允许你在应用程序中启动并管理其他程序的进程,比如运行一个命令行工具或系统脚本。以下是使用 `QProcess` 执行 `cmd` 命令的基本步骤: 1. 导入所需的模块: ```python from PyQt5.QtCore import QProcess, QByteArray, Qt ``` 2. 创建 `QProcess` 实例: ```python process = QProcess() ``` 3. 设置进程属性,如工作目录 (`setWorkingDirectory()`) 和环境变量 (`setEnvironmentVariables()`)。 4. 启动进程,并传递命令: ```python command = "cmd /c your_command_argument" # 替换为你要执行的实际命令 process.start(command) ``` 注意这里的 `/c` 是 Windows 的命令提示符参数,表示立即执行一条命令然后退出。对于其他操作系统(如 Linux 或 macOS),你可能需要调整命令格式。 5. 监听进程状态变化和输出: ```python # 连接信号槽处理进程的状态更新和输出结果 process.readyReadStandardOutput.connect(self.on_outputReady) process.stateChanged.connect(self.on_stateChange) def on_outputReady(self): output = process.readAllStandardOutput().data().decode('utf-8') print(output) def on_stateChange(self, state): if state == QProcess.ProcessFinished: exitCode = process.exitCode() print(f"Command finished with code {exitCode}") ``` 6. 确保在不再需要时关闭进程: ```python process.waitForFinished(-1) # 等待进程结束,-1 表示无超时 process.kill() # 如果你想强制终止进程 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SunnyFish-ty

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值