Мне было интересно, знает ли кто, как установить цвет текста, который появляется в оболочке. Я заметил, что «ls» использует несколько разных цветов при печати информации на экране (в моем ящике Linux), было интересно, могу ли я воспользоваться преимуществами этого в Python.Python | изменить цвет текста в оболочке
ответ
Использовать пропуски или escape-последовательности ANSI. Прежде чем вы начнете извергать escape-последовательности, вы должны проверить, что stdout - это tty. Вы можете сделать это с помощью sys.stdout.isatty()
. Вот функция вытащил из проекта шахты, который печатает вывод в красный или зеленый, в зависимости от состояния, используя ANSI управляющие последовательности:
def hilite(string, status, bold):
attr = []
if status:
# green
attr.append('32')
else:
# red
attr.append('31')
if bold:
attr.append('1')
return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string)
Все основные цветовые коды приведены в https://www.siafoo.net/snippet/88
Идентификатор безопасности этого веб-сайта истек. Может ли кто-нибудь проверить, что это безопасный веб-сайт? – BlackVegetable
@BlackVegetable, да, он выглядит так же, как и раньше. Кроме того, вы можете просмотреть его [HTTP] (http://www.siafoo.net/snippet/88), если хотите. Я свяжусь с ними, чтобы сообщить им о сертификате. –
, даже если вы доверяете ему, @BlackVegetable, вы получаете прокси-ошибку –
curses
позволит использовать цвета правильно для типа терминала, который используется.
посмотреть на http://www.pixelbeat.org/talks/python/ls.py
Это так просто сделать на ПК: ОС Windows: Отправить ОС команду, чтобы изменить текст: импорт ОС
os.system('color a') #green text
print 'I like green'
raw_input('do you?')
я только что описал очень популярной библиотеки clint. Который имеет больше особенностей, кроме окрашивания вывода на терминале.
Кстати, он поддерживает терминалы MAC, Linux и Windows.
Вот пример его использования:
Установка (в Ubuntu)
pip install clint
Чтобы добавить цвета в некоторые строки
colored.red('red string')
Пример: Используя для цветной выход (стиль команды django)
from django.core.management.base import BaseCommand
from clint.textui import colored
class Command(BaseCommand):
args = ''
help = 'Starting my own django long process. Use ' + colored.red('<Ctrl>+c') + ' to break.'
def handle(self, *args, **options):
self.stdout.write('Starting the process (Use ' + colored.red('<Ctrl>+c') + ' to break)..')
# ... Rest of my command code ...
- 1. Изменить цвет текста в оболочке python?
- 2. Изменить цвет текста Python
- 3. Позиция текста в оболочке Python
- 4. Как горизонтально изменить размер текста в оболочке Python?
- 5. Изменить цвет текста существующего текста
- 6. python QLineEdit Цвет текста
- 7. Как цвет текста в Python?
- 8. Изменить цвет текста SFSafariViewController?
- 9. Изменить цвет текста UIDatePicker
- 10. Изменить цвет текста кнопки
- 11. Изменить цвет текста сценарий
- 12. Изменить цвет текста TextView
- 13. RadGridView изменить цвет текста
- 14. RadioButton изменить цвет текста
- 15. Изменить цвет текста гиперссылки
- 16. jQuery - изменить цвет текста
- 17. Изменить цвет текста кнопки
- 18. Изменить цвет текста вкладок
- 19. изменить цвет текста андроида
- 20. Изменить цвет текста CSS3
- 21. Изменить цвет текста TimePicker
- 22. Изменить цвет текста onclick
- 23. Изменить цвет текста консоли
- 24. Изменить цвет выделения текста
- 25. jQuery: Изменить цвет текста
- 26. JQuery Изменить цвет текста
- 27. Изменить цвет текста UIAlertController
- 28. Изменить цвет выделенного текста
- 29. Изменить Picker Цвет текста
- 30. CSS. Изменить цвет текста
+1 специально для 'sys.stdout.isatty()' – Nifle
Также приятно иметь переопределение для случая, когда вывод не является tty, но вы все еще хотите цвет - скажите, что вы просто фильтруете линии с помощью sed или grep. –
'unbuffer' может это сделать, поэтому вы не застреваете, если нет переопределения. –