Pyqt:执行命令

2024-05-15 23:13:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在pyqt应用程序中执行命令行,目前我正在做的是:

stdouterr = os.popen4(cmd)[1].read()

很简单,而且在大多数情况下它确实可以工作,但是当我打开一个文本文件时,pyqt程序会停止,直到文本文件被关闭。有没有办法让我打开这样的东西而不停止我的申请。在

编辑:

好吧,我都快想出来了。我目前正在执行以下操作:

^{pr2}$

但有没有办法在进程运行完成后读取stdout和stderr?在


Tags: 程序cmd应用程序编辑read进程os情况
2条回答
#my pyqt knowledge is not the best but this works for me... didn't use your example. hope you get it still.
from PyQt5.QtCore import QProcess

process = QProcess()
process.start("yourcommand")
process.waitForStarted()
process.waitForFinished()
process.readAll()
process.close()

'''
from PyQt5.QtCore import QProcess
process = QProcess()
process.start('driverquery')
process.waitForStarted()
process.waitForFinished():
process.waitForReadyRead()
tasklist = process.readAll()
process.close()
tasklist = str(tasklist).strip().split("\\r\\n")
print(tasklist)
'''

您可以从stdoutstderr中阅读,如下所示:

process = subprocess.Popen(cmd, shell=True, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True)

stdout, stderr = process.communicate()
print stdout
print stderr

相关问题 更多 >