почему нет вывода цвета с Python? - PullRequest
0 голосов
/ 20 января 2010

У меня есть командный файл, который вызывает решение .Net для создания проекта. В окне консоли dos предупреждение и ошибка будут другого цвета, зеленого и красного, выглядит красиво. Когда пакетный файл вызывается из Python, вообще никакого цвета, все в одном цвете. Можно ли получить такой же красочный результат с питоном? мой вызов командного файла выглядит так:

p = subprocess.Popen('manualBuild.bat', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 
for line in p.stdout.readlines(): 
    print line, 
retval = p.wait()

спасибо

Ответы [ 2 ]

3 голосов
/ 20 января 2010

Некоторые программы проверяют, действительно ли они подключены к консоли / терминалу, и подавляют изменения атрибутов, если они не для упрощения анализа / обработки вывода. Я знаю, что в * nix системах вы можете использовать unbuffer, чтобы обмануть программу, но я не знаю, есть ли аналог Windows.

0 голосов
/ 21 января 2010

Если бы это был UNIX, я бы посоветовал вам не получать вывод в переменную, а просто позволить программе распечатать его (т.е. не передавать stdout в подпроцесс). Может быть, вы можете попробовать это один раз?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...