Colored output of the input() text in the console
Colored output of the input() text in the console
I'd like to make the text of let's say
input("Name: ")
colored in a way like cprint() with the colorama module.
Is there any way of doing that?
I've tried this:
green = '33[92m'
input(green + "Name: " + green)
But it doens't show any color. It just tries to print these characters as they are.
However with the print() function the output is colored green.
print(green + "Hi" + green)
Any help?
green
x1b[0m
@abarnert I'm on Windows 7 and running it on the console. The output isn't shown green for me . I'm aware that the rest of the text will also be green, but I haven't reset it because I'm testing it.
– LaurentiuS
Aug 23 at 19:05
OK, how are you enabling color output on Windows? If you've been relying on
colorama.init()
to automatically translate ANSI sequences in stdout to console calls, did you make sure to call init
before doing the input
?– abarnert
Aug 23 at 19:08
colorama.init()
init
input
@abarnert Yes, I've called the colorama.init() function within my program before using the input() function to display the text. Even with that, the sequence doesn't get translated, and instead gets roughly printed to the console.
– LaurentiuS
Aug 23 at 19:13
By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.
What platform are you on? When I run this on macOS inside iTerm, either in a script or in the IPython interpreter, or over ssh or mosh to a linux box running the same script, it shows as green. (It also leaves things green forever, because you're adding
green
again at the end, instead of doing ax1b[0m
reset, of course.)– abarnert
Aug 23 at 18:45