记录QT调用耗时的python脚本,不能实时获取python脚本日志问题
2021/8/19 17:06:28
本文主要是介绍记录QT调用耗时的python脚本,不能实时获取python脚本日志问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
问题代码:
QString cmd3 = "D:/gmy/work/svnwork/rep/tensortool/debug/python_env/python.exe C:/temp/test.py"; QProcess test; test.start(cmd3); test.waitForStarted(); while (test.state() == QProcess::ProcessState::Running) { if(test.waitForReadyRead(10)){ qDebug() << test.readAllStandardError(); qDebug() << test.readAllStandardOutput(); } } qDebug() << "结束。。。"; test.waitForFinished();
test.py测试耗时脚本:
import timefor index in range(4): print("hello world!"); time.sleep(1);
运行程序,理想情况是执行test.py脚本时,每隔1秒,打印一次hello word!
hello world! //1秒
hello world! //2秒
hello world! //3秒
hello world! //4秒
但实际是执行test.py脚本后,等待4秒,返回所有结果:
hello world! \r\n hello world! \r\n hello world! \r\n hello world! \r\n //4秒
原因是python在调用print后不会立即把打印的内容输出到标准输出中,是先把要打印内容放到缓冲区,等缓冲区满或调用sys.stdout.flush() 刷新时,才会把打印内容输出到标准输出中。
所以修改test.py脚本:
import time import sys for index in range(4): print("hello world!"); time.sleep(1); sys.stdout.flush()
重新执行程序,输出:
hello world! //1秒
hello world! //2秒
hello world! //3秒
hello world! //4秒
这篇关于记录QT调用耗时的python脚本,不能实时获取python脚本日志问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-18初探Python股票自动化交易:入门指南
- 2024-09-18Python量化入门:轻松掌握量化分析基础与实战
- 2024-09-18Python量化交易:入门指南与实践
- 2024-09-18Python量化交易:入门指南与实战技巧
- 2024-09-14Python人工智能项目实战:从零开始的实践指南
- 2024-09-14探索Python人工智能资料:初学者的指南
- 2024-09-14Python人工智能资料:初学者的全面指南
- 2024-09-13Matplotlib入门:轻松绘制Python数据可视化图表
- 2024-09-13Python人工智能:初学者的入门指南
- 2024-09-13Python人工智能:轻松入门与实践