Hướng dẫn python ansi escape codes not working - mã thoát python ansi không hoạt động

Nếu tôi chạy cái này trong Python dưới Linux, nó hoạt động:

start = "\033[1;31m"
end = "\033[0;0m"
print "File is: " + start + "" + end

Nhưng nếu tôi chạy nó trong Windows, nó không hoạt động, làm thế nào tôi có thể làm cho mã Escape ANSI cũng hoạt động trên Windows?

Hướng dẫn python ansi escape codes not working - mã thoát python ansi không hoạt động

Tế bào thần kinh

4.7024 Huy hiệu vàng33 Huy hiệu bạc54 Huy hiệu đồng4 gold badges33 silver badges54 bronze badges

Hỏi ngày 19 tháng 9 năm 2012 lúc 10:23Sep 19, 2012 at 10:23

Hướng dẫn python ansi escape codes not working - mã thoát python ansi không hoạt động

Eduard Florinescueduard FlorinescuEduard Florinescu

15.8K28 Huy hiệu vàng110 Huy hiệu bạc173 Huy hiệu đồng28 gold badges110 silver badges173 bronze badges

3

Đối với Windows, gọi

import os
os.system("")  # enables ansi escape characters in terminal

COLOR = {
    "HEADER": "\033[95m",
    "BLUE": "\033[94m",
    "GREEN": "\033[92m",
    "RED": "\033[91m",
    "ENDC": "\033[0m",
}

print(COLOR["GREEN"], "Testing Green!!", COLOR["ENDC"])
2 làm cho chuỗi thoát ANSI được xử lý chính xác:

import os
os.system("")  # enables ansi escape characters in terminal

COLOR = {
    "HEADER": "\033[95m",
    "BLUE": "\033[94m",
    "GREEN": "\033[92m",
    "RED": "\033[91m",
    "ENDC": "\033[0m",
}

print(COLOR["GREEN"], "Testing Green!!", COLOR["ENDC"])

Hướng dẫn python ansi escape codes not working - mã thoát python ansi không hoạt động

Tế bào thần kinh

4.7024 Huy hiệu vàng33 Huy hiệu bạc54 Huy hiệu đồng4 gold badges33 silver badges54 bronze badges

Hỏi ngày 19 tháng 9 năm 2012 lúc 10:23Oct 6, 2020 at 9:19

6

Eduard Florinescueduard Florinescu

15.8K28 Huy hiệu vàng110 Huy hiệu bạc173 Huy hiệu đồng

Đối với Windows, gọi

import os
os.system("")  # enables ansi escape characters in terminal

COLOR = {
    "HEADER": "\033[95m",
    "BLUE": "\033[94m",
    "GREEN": "\033[92m",
    "RED": "\033[91m",
    "ENDC": "\033[0m",
}

print(COLOR["GREEN"], "Testing Green!!", COLOR["ENDC"])
2 làm cho chuỗi thoát ANSI được xử lý chính xác:

pip install colorama

Đã trả lời ngày 6 tháng 10 năm 2020 lúc 9:19

import colorama
colorama.init()
start = "\033[1;31m"
end = "\033[0;0m"
print "File is: " + start + "" + end

Bạn có thể kiểm tra mô -đun Python để bật màu ANSI cho stdout trên Windows? Để xem nó có hữu ích không.Sep 19, 2012 at 10:47

4

Mô-đun Colorama dường như là đa nền tảng.the standard library. It is installed by default with Python 3.x, only on Windows. So check if the OS is Windows before to use it (with

import os
os.system("")  # enables ansi escape characters in terminal

COLOR = {
    "HEADER": "\033[95m",
    "BLUE": "\033[94m",
    "GREEN": "\033[92m",
    "RED": "\033[91m",
    "ENDC": "\033[0m",
}

print(COLOR["GREEN"], "Testing Green!!", COLOR["ENDC"])
4, for example).

import os
if os.name == 'nt': # Only if we are running on Windows
    from ctypes import windll
    k = windll.kernel32
    k.SetConsoleMode(k.GetStdHandle(-11), 7)

Bạn cài đặt Colorama:

message = "ERROR"
print(f"\x1b[31m{message}\x1b[0m")

Sau đó:

Đã trả lời ngày 19 tháng 9 năm 2012 lúc 10:47Feb 12, 2020 at 17:55

Hướng dẫn python ansi escape codes not working - mã thoát python ansi không hoạt động

Đây là giải pháp tôi đã tìm kiếm từ lâu. Chỉ cần sử dụng mô -đun

import os
os.system("")  # enables ansi escape characters in terminal

COLOR = {
    "HEADER": "\033[95m",
    "BLUE": "\033[94m",
    "GREEN": "\033[92m",
    "RED": "\033[91m",
    "ENDC": "\033[0m",
}

print(COLOR["GREEN"], "Testing Green!!", COLOR["ENDC"])
3, từ thư viện tiêu chuẩn. Nó được cài đặt theo mặc định với Python 3.x, chỉ trên Windows. Vì vậy, hãy kiểm tra xem HĐH có phải là Windows trước khi sử dụng nó không (ví dụ với
import os
os.system("")  # enables ansi escape characters in terminal

COLOR = {
    "HEADER": "\033[95m",
    "BLUE": "\033[94m",
    "GREEN": "\033[92m",
    "RED": "\033[91m",
    "ENDC": "\033[0m",
}

print(COLOR["GREEN"], "Testing Green!!", COLOR["ENDC"])
4).Ubuesque

Sau khi bạn đã làm điều đó, bạn có thể sử dụng các ký tự đặc biệt ASCII (như

import os
os.system("")  # enables ansi escape characters in terminal

COLOR = {
    "HEADER": "\033[95m",
    "BLUE": "\033[94m",
    "GREEN": "\033[92m",
    "RED": "\033[91m",
    "ENDC": "\033[0m",
}

print(COLOR["GREEN"], "Testing Green!!", COLOR["ENDC"])
5, cho màu đỏ) như thể bạn đang ở trên hệ điều hành Unix:5 silver badges7 bronze badges

4

Tôi thích giải pháp này vì nó không cần phải cài đặt một mô -đun (như Colorama hoặc TermColor).

Đã trả lời ngày 12 tháng 2 năm 2020 lúc 17:55

UbuesqueubuesqueJul 25, 2018 at 17:01

3115 Huy hiệu bạc7 Huy hiệu đồngDan M.

Nếu bạn đang ở Win 10 (với hỗ trợ ANSI bản địa trong CMD), dường như có một lỗi được đánh dấu là được giải quyết trong Python 3.7 (mặc dù nó không thực sự đã được sửa).1 gold badge22 silver badges39 bronze badges

3

Một cách giải quyết là thêm

import os
os.system("")  # enables ansi escape characters in terminal

COLOR = {
    "HEADER": "\033[95m",
    "BLUE": "\033[94m",
    "GREEN": "\033[92m",
    "RED": "\033[91m",
    "ENDC": "\033[0m",
}

print(COLOR["GREEN"], "Testing Green!!", COLOR["ENDC"])
6 trước khi in.

Đã trả lời ngày 25 tháng 7 năm 2018 lúc 17:01

>>> from clint.textui import colored, puts

>>> puts(colored.red('red text'))
red text

# It's red in Windows, OSX, and Linux alike.

Dan M.Dan M.Sep 19, 2012 at 10:36

Hướng dẫn python ansi escape codes not working - mã thoát python ansi không hoạt động

3.6881 Huy hiệu vàng22 Huy hiệu bạc39 Huy hiệu đồngmfussenegger

Bạn có thể xem https://github.com/kennethreitz/clint22 silver badges18 bronze badges

5

Từ readme:

import os
os.system("")

Đã trả lời ngày 19 tháng 9 năm 2012 lúc 10:36

mfusseneggermfusseneggerOct 19, 2020 at 15:59

1

3,89322 Huy hiệu bạc18 Huy hiệu đồng

Bạn chỉ có thể làm điều này:

print("\033[48;2;255;140;60m ORANGE BACKGROUND \033[48;2;0;0;0m")

Điều này làm việc cho tôi. Lời nhắc lệnh không hỗ trợ màu theo mặc định.

Đã trả lời ngày 19 tháng 10 năm 2020 lúc 15:59

Gửi các chuỗi Escape ANSI nên hoạt động, theo hàng ngàn câu trả lời tốt trên Internet, nhưng một chi tiết tối nghĩa đã khiến tôi mất hai nửa ngày để vấp ngã. Bí quyết là một khóa đăng ký nhất định phải được đặt. Tôi đang sử dụng (chỉ cho ngày hôm nay) Windows 10 Enterprise, phiên bản 1709, xây dựng 16299.Jul 22, 2019 at 23:27

Hướng dẫn python ansi escape codes not working - mã thoát python ansi không hoạt động

Trong HKEY_CURRENT_USER, trong bảng điều khiển, ngay giữa TrimleadingZeros và Windowalpha, cần có VirtualterMinalLevel. Nếu nó không tồn tại, hãy tiếp tục và tạo ra nó. Đó là một reg_dword. Đặt giá trị của nó thành 1. Mở một thiết bị đầu cuối mới, chạy Python và có một chút vui.DarenW

Xem https://github.com/ytdl-org/youtube-dl/issues/15758 để đọc những thứ của những người biết nhiều hơn tôi về điều này.7 gold badges63 silver badges100 bronze badges

Bây giờ nếu tôi có thể nhớ tại sao tôi muốn tô màu cho đầu ra của chương trình Python của mình ...

import os
os.system("color") # Alternative - os.system("")

TCOLOR = "\033[31;3m"
ENDC = "\033[m"
print (TCOLOR + "Make yourself happy" + ENDC)

Đã trả lời ngày 22 tháng 7 năm 2019 lúc 23:27Aug 5, 2021 at 6:59

Hướng dẫn python ansi escape codes not working - mã thoát python ansi không hoạt động

Darenwdarenw

import os
os.system("")  # enables ansi escape characters in terminal

COLOR = {
    "HEADER": "\033[95m",
    "BLUE": "\033[94m",
    "GREEN": "\033[92m",
    "RED": "\033[91m",
    "ENDC": "\033[0m",
}

print(COLOR["GREEN"], "Testing Green!!", COLOR["ENDC"])
0

16.3k7 Huy hiệu vàng63 Huy hiệu bạc100 Huy hiệu ĐồngOct 20, 2018 at 23:26

import os
os.system("")  # enables ansi escape characters in terminal

COLOR = {
    "HEADER": "\033[95m",
    "BLUE": "\033[94m",
    "GREEN": "\033[92m",
    "RED": "\033[91m",
    "ENDC": "\033[0m",
}

print(COLOR["GREEN"], "Testing Green!!", COLOR["ENDC"])
1

Đây là một mã đơn giản hơn một chút tôi đã sử dụng.Apr 10, 2021 at 19:21

Hướng dẫn python ansi escape codes not working - mã thoát python ansi không hoạt động

1