Я использую popen для создания плагина, этот плагин использовал внешнюю программу, которая показывает цветной текст на выходе.Получите выходной цветной текст с помощью Popen
Выход что-то вроде этого:
avr-g++ -o .pioenvs\uno\FrameworkArduino\HardwareSerial.o -c -std=gnu++11 -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10607 -I.pioenvs\uno\FrameworkArduino -I.pioenvs\uno\FrameworkArduinoVariant .pioenvs\uno\FrameworkArduino\HardwareSerial.cpp
avr-g++ -o .pioenvs\uno\FrameworkArduino\HardwareSerial0.o -c -std=gnu++11 -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10607 -I.pioenvs\uno\FrameworkArduino -I.pioenvs\uno\FrameworkArduinoVariant .pioenvs\uno\FrameworkArduino\HardwareSerial0.cpp
=============================================
Path\file.cpp: in function 'void loop()':
Path\file.cpp:23:2 error: expected ';' before '}' token
}
^
=============================================
Все внутри "=" в красный и желтый.
Когда я запускаю команду в командной консоли, можно увидеть полную мощность, но когда я использую POPEN я только могу получить неокрашенной текст
Это, как я использую POPEN
process = subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE, cwd=self.cwd, universal_newlines=True, shell=True)
output = process.communicate()
stdout = output[0]
stderr = output[1]
print(stdout)
print(stderr)
Я хотел бы получить текст, даже если он не окрашен, важно получить полный журнал.
Любое предложение будет оценено
Просьба проголосовать за мой ответ, если это поможет исправить вашу проблему. :) – Rahman
Сделано! спасибо снова :) – GEPD