【问题标题】:How to redirect the python console output when executed with a os.system command to a QTextBox?使用 os.system 命令执行时如何将 python 控制台输出重定向到 QTextBox?
【发布时间】:2013-01-04 11:25:48
【问题描述】:

我想在 python 中使用 QProcess 命令执行 perl 文件。但是当我尝试使用 QProcess.start 命令时它不起作用,但是当我使用 os.system 命令时它会执行。 如何在 python 中使用 QProcess 执行 perl 文件以及如何将执行的输出打印重定向到 QTextBox? 这是我尝试过的一段代码:

这里没有执行 perl 文件...

os.chdir('E:\Jayakanth\python_proj\code\py_files\H264_perl_script')
qprocess = QtCore.QProcess()
qprocess.start('example.pl')
qprocess.waitForFinished(-1)
msg = str(qprocess.readAll())
self.textbrowser.append(msg)

但它的工作原理是这样的:

import os
os.system('example.pl')

或者如何将 os.system 执行的 python 控制台输出重定向到 Qtextbox?

【问题讨论】:

  • 那么,qprocess.start 是否提供任何返回值、错误消息或抛出任何异常?
  • 感谢您的支持 Mr.Len Jaffe 我可以通过以下方式解决上述问题: qprocess.start('E:/path/to/perl.exe', 'example.pl') 但是应该注意我们指定路径的方式。这里又遇到了一个问题。也就是说,如果单击 QCheckbox,我想在循环中连续运行相同的内容,并且在单击 QPushbutton 时我必须停止循环请帮帮我
  • QT 只是其中之一,我没有经验。我也无法在网上找到 QProcess 的“好”教程或参考资料,但如果您要在 SO 上搜索 QProcess,您会发现几个可能对您有所帮助的类似问题和答案。
  • 谢谢Mr.Len 除了使用os.system函数之外,有没有办法在python中调用perl脚本如果可以的话,请告诉我怎么做再次感谢

标签: python windows perl pyqt


【解决方案1】:

考虑到您似乎在 Windows 上,您可能必须在传递给 os.system() 的字符串中提供 Perl 可执行文件的完整路径

os.system('E:\path\to\perl.exe example.pl');

这是我的猜测。

【讨论】:

  • 即使我没有给出 perl 可执行文件的完整路径但我无法使用 QProcess 执行,它也在使用 os.system。关于如何使用 QProcess 执行相同操作的任何想法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-14
  • 2016-10-17
  • 1970-01-01
相关资源
最近更新 更多