Мне нужно получить стандартный вывод подпроцесса в моем коде Python, чтобы я мог дополнительно обработать вывод в своем коде Python.
У меня есть следующий фрагмент кода в Python, чтобы получить стандартный выводно у меня есть пустое значение для выходной переменной.
import subprocess
import json
import time
class RunProcess:
waitTime = 0
def SetWaitTime(self, waitingTimeInMSec):
self.waitTime = waitingTimeInMSec
def Run(self, filePath, arguments):
if self.waitTime > 0:
time.sleep(self.waitTime)
process = subprocess.Popen(filePath + arguments, stdout=subprocess.PIPE, stderr=None, shell=True)
output = process.communicate()[0]
print(output)
if __name__ == '__main__':
p = RunProcess()
p.Run("C:\Projects\ATR220-Test\ATR220_Python_Tester\DeviceLoad\SerialReadWrite\srw.exe", " list=PID_0180")
Но когда я запускаю из командной строки Windows, приложение выдает мне студию, что означает, что нет проблем с приложением, которое я вызываю. Поэтому я подозреваю, что проблема в моем коде Python.
Вывод, когда исполняемый файл запускается из командной строки Windows.
C:\>C:\Projects\ATR220-Test\ATR220_Python_Tester\DeviceLoad\SerialReadWrite\srw.exe list=PID_0180
C:\>
{
"list": [
{
"availability": "2",
"name": "COM3",
"friendlyname": "USB Serial Device (COM3)",
"pnpdevicepath": "USB\\VID_0DB5&PID_0180&MI_02\\7&8A6C74D&0&0002"
}
],
"status": {
"value": 0,
"description": "ok"
}
}