簡體   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