繁体   English   中英

如何使用ansi转义码为python中的特定字符单元着色,其中字符单元格位置由变量确定

[英]How to colour a specific character cell in python using ansi escape codes where the character cell location is determined by variables

我希望能够在python中为一个字符单元着色,其中要着色的字符单元由两个变量确定(一个用于列的第一行)。

我已经尝试过字符串解析和字符串连接,但我无法弄清楚它们为什么不起作用。

sys.std(u"\u033[%d;%dH\u001b[47m\033[0m" % (y, x))

code = 47
sys.stdout.write(u"\u001b[81;23f\u001b[" + str(code) + "m " + RESET )
sys.stdout.write(u"\u001b[" + str(x) + ";23f\u001b[" + str(code) + "m " )

第一个说:SyntaxError :( unicode error)'unicodeescape'编解码器无法解码位置0-4中的字节:截断\\ uXXXX转义

第二行有效,它将第81行第23列灰色的字符单元着色。 但是第三行在第81行第23行打印“\\ u001b [47m”而不是输出彩色像素。

我真的不明白为什么字符串连接适用于第二个而不是第三个。 理想情况下,我希望能够使用x和y等变量更改值81和23。

我一直在思考这个问题已经有好几个小时了,并且会很感激一些见解。

在python 3上,代码的第3行无需更改即可正常工作。 在python 2上,您需要将所有字符串成员强制转换为unicode:

sys.stdout.write(u"\u001b[" + unicode(x) + u";23f\u001b[" + unicode(code) + u"m " )

第一行似乎与转义序列有另一个问题,因为\\ u033不是有效的转义字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM