Tôi đã tự hỏi liệu có ai biết cách đặt màu của văn bản hiển thị trong trình bao hay không. Tôi nhận thấy 'ls' sử dụng một vài màu sắc khác nhau khi in ra thông tin cho màn hình (trên hộp Linux của tôi), đã tự hỏi nếu tôi có thể tận dụng lợi thế đó trong Python.Python | thay đổi màu văn bản trong shell
Trả lời
Sử dụng các trình tự Curses hoặc ANSI escape. Trước khi bạn bắt đầu spouting escape sequences, bạn nên kiểm tra stdout đó là một tty. Bạn có thể làm điều này với sys.stdout.isatty()
. Dưới đây là một chức năng kéo từ một dự án của tôi mà in ra màu đỏ hoặc màu xanh lá cây, tùy thuộc vào tình trạng, sử dụng chuỗi ANSI thoát:
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)
Tất cả các mã màu chính được nêu tại https://www.siafoo.net/snippet/88
Chứng chỉ bảo mật của trang web này đã hết hạn. Bất cứ ai có thể xác minh rằng đây là một trang web an toàn? – BlackVegetable
@BlackVegetable, yeah, nó trông giống như trước đây. Ngoài ra, bạn có thể xem nó [HTTP] (http://www.siafoo.net/snippet/88) nếu bạn thích. Tôi sẽ liên lạc với họ để cho họ biết về chứng nhận. –
ngay cả khi bạn tin tưởng nó, @BlackVegetable, bạn nhận được một lỗi proxy –
curses
sẽ cho phép bạn sử dụng màu sắc phù hợp cho các loại thiết bị đầu cuối đang được sử dụng.
có một cái nhìn tại http://www.pixelbeat.org/talks/python/ls.py
Đây là đơn giản như vậy để làm trên PC: hệ điều hành Windows: Gửi os một lệnh để thay đổi văn bản: import os
os.system('color a') #green text
print 'I like green'
raw_input('do you?')
tôi vừa mô tả rất phổ biến thư viện clint. Trong đó có nhiều tính năng ngoài việc tô màu đầu ra trên thiết bị đầu cuối.
Bằng cách hỗ trợ các thiết bị đầu cuối MAC, Linux và Windows.
Dưới đây là ví dụ của việc sử dụng nó:
Cài đặt (trong Ubuntu)
pip install clint
Để thêm màu sắc cho một số chuỗi
colored.red('red string')
Ví dụ: Sử dụng cho đầu ra màu (kiểu lệnh 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. Thay đổi màu văn bản
- 2. Thay đổi màu văn bản trong MoreNavigationController
- 3. Thay đổi màu văn bản trong trường văn bản
- 4. Thay đổi màu và màu của văn bản trong hộp văn bản
- 5. Thay đổi màu văn bản trong một WebView?
- 6. cách thay đổi màu nhãn văn bản QCheckBox trong Qt?
- 7. Thay đổi màu văn bản trong các hộp CHỌN
- 8. Thay đổi màu đánh dấu khi chọn văn bản trong đầu vào văn bản HTML
- 9. thay đổi màu văn bản nút khi nhấn
- 10. Thay đổi màu đường viền của văn bản iOS
- 11. Trình tạo giao diện thay đổi lỗi màu văn bản?
- 12. Thay đổi màu văn bản khi người dùng đang nhập?
- 13. Thay đổi TabPageIndicator footer và màu văn bản (ViewPagerIndicator)
- 14. Thay đổi màu văn bản giữ chỗ của jQuery
- 15. Thay đổi màu văn bản UITextView bằng hoạt ảnh
- 16. Thay đổi màu văn bản của thanh tìm kiếm ios
- 17. Thay đổi màu pixel Python
- 18. SWT Java: cách thay đổi màu của văn bản trong Kiểm soát nhãn?
- 19. MFC - thay đổi màu văn bản của điều khiển văn bản cstatic
- 20. Thay đổi theo lập trình màu chữ của văn bản trong PDF
- 21. matplotlib: thay đổi tiêu đề và màu sắc văn bản và màu sắc đánh dấu
- 22. Làm cách nào để thay đổi màu của nút và màu văn bản trên android
- 23. ProgressDialog: thay đổi kích thước văn bản
- 24. Cách thay đổi Văn bản trong TextCompositionEventArgs
- 25. Văn bản UITableViewCellMàu không thay đổi
- 26. Thay đổi màu phông chữ trong Hộp văn bản trong IE bị tắt
- 27. FPDF: Thay đổi màu văn bản trong khi ở trong Ô?
- 28. Làm thế nào để thay đổi màu phông chữ trong hộp văn bản trong C#?
- 29. Thay đổi văn bản màu đầu ra trên cửa sổ cho stderr
- 30. Văn bản Echo PHP Màu
+1 đặc biệt là cho 'sys.stdout.isatty()' – Nifle
Nó cũng tốt đẹp để có một ghi đè cho trường hợp đầu ra không phải là một tty, nhưng bạn vẫn muốn màu sắc - nói rằng bạn chỉ lọc dòng với sed hoặc grep –
'unbuffer' có thể làm điều đó, vì vậy bạn không bị mắc kẹt nếu không có ghi đè. –